使用C语言将下面的字符串中的timestr段和timestamp段给解析出来 +HTTPCLIENT:64,{ "timestr":"2023-04-04 09:22:25", "timestamp":1680571345549 } OK
时间: 2023-11-05 15:12:46 浏览: 99
C语言中将日期和时间以字符串格式输出的方法
下面是一个示例代码,可以将字符串中的timestr段和timestamp段解析出来:
```c
#include <stdio.h>
#include <string.h>
int main() {
char *str = "HTTPCLIENT:64,{ \"timestr\":\"2023-04-04 09:22:25\", \"timestamp\":1680571345549 } OK";
char *p1 = strstr(str, "\"timestr\":");
char *p2 = strstr(str, "\"timestamp\":");
if (p1 && p2) {
char *timestr = strtok(p1 + 11, "\"");
char *timestamp_str = strtok(p2 + 12, " }");
long long timestamp = atoll(timestamp_str);
printf("timestr: %s\n", timestr);
printf("timestamp: %lld\n", timestamp);
}
return 0;
}
```
输出:
```
timestr: 2023-04-04 09:22:25
timestamp: 1680571345549
```
解释一下代码:
首先使用 `strstr` 函数找到字符串中包含 `"timestr"` 和 `"timestamp"` 的位置。如果两个位置都存在,那么可以使用 `strtok` 函数解析出对应的值。
对于 `"timestr"`,由于它是一个字符串,需要使用双引号 `"\""` 作为分隔符,因此第一次调用 `strtok` 函数时传入 `"\""`。
对于 `"timestamp"`,由于它是一个整数,需要使用空格和 `}` 作为分隔符,因此第二次调用 `strtok` 函数时传入 `" }"`。
解析出的 `timestamp` 是一个 long long 类型的整数,可以使用 `atoll` 函数将字符串转换成整数。
阅读全文