通知~
从下列字符串中提起字符串 temperature后面的数据 12.5,注意提取的数据以 ] 结束,可能数字是12.5,也可能123.5,意思是提取的数据宽度有变化时,也能提取
"Asia/Shanghai,server_time:1643418869,location:[33.06,107.03],result:{realtime:{status:ok,temperature:[12.5]"humidity:[0.95]"
将结果显示出来
你题目的解答代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char s[] = "Asia/Shanghai,server_time:1643418869,location:[33.06,107.03],result:{realtime:{status:ok,temperature:[12.5]\"humidity:[0.95]\"";
char k[] = "temperature:[";
int i = strlen(k);
char *p = strstr(s,k)+i;
char *q = strstr(p,"]");
for (; p < q; p++)
printf("%c",*p);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
如果允许用字符串操作函数,那么用strstr可以进行搜索。如果不允许,那就需要从第一个字符开始,与temperature字符串进行逐个字符匹配。可以封装一个函数实现这个搜索。然后从找到的具体位置向后搜索中括号对,在中括号对之间的数值就是要找的数。
如果认为不可以用字符串操作函数,请回复。