char buf[1282] = "$GPGSV,1,1,00,0*65$BDGSV,1,1,00,0*74 \ $GNRMC,072241.000,A,2253.7207,N,11350.7061,E,0.00,0.00,030517,,,A*70 \ $GPGSV,1,1,00,0*65$BDGSV,1,1,00,0*74";找$GNRMC数据然后保存
时间: 2023-09-13 09:02:29 浏览: 144
DATAS1.rar_buf1复制到buf2
5星 · 资源好评率100%
你可以使用 `strstr()` 函数在 `buf` 字符串中查找 `$GNRMC` 数据的位置,然后使用指针和字符串处理函数将该数据保存到一个新的字符串中。
以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char buf[1282] = "$GPGSV,1,1,00,0*65$BDGSV,1,1,00,0*74 \
$GNRMC,072241.000,A,2253.7207,N,11350.7061,E,0.00,0.00,030517,,,A*70 \
$GPGSV,1,1,00,0*65$BDGSV,1,1,00,0*74";
char search[] = "$GNRMC,";
char *result;
char data[128];
// 查找需要的字符串的位置
result = strstr(buf, search);
// 判断查找结果是否为NULL
if (result != NULL) {
// 复制数据到 data 变量中
strcpy(data, result);
// 打印查找到的字符串
printf("Result: %s\n", data);
} else {
printf("'%s' not found in '%s'\n", search, buf);
}
return 0;
}
```
这个示例代码会在 `buf` 中查找 `$GNRMC`,如果找到了,就将该数据复制到 `data` 变量中,并打印出来。输出结果为:
```
Result: $GNRMC,072241.000,A,2253.7207,N,11350.7061,E,0.00,0.00,030517,,,A*70 \
$GPGSV,1,1,00,0*65$BDGSV,1,1,00,0*74
```
注意,这里使用了 `strcpy()` 函数将结果复制到 `data` 变量中,这个函数会将 `result` 指向的字符串复制到 `data` 变量中,并在末尾添加一个字符串结束符 `\0`。如果你需要对复制的字符串进行修改,可以使用 `strncpy()` 函数,它不会自动添加字符串结束符,需要手动添加。
阅读全文