c语言提取字符串后的数据

通知~
从下列字符串中提起字符串 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;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

如果允许用字符串操作函数,那么用strstr可以进行搜索。如果不允许,那就需要从第一个字符开始,与temperature字符串进行逐个字符匹配。可以封装一个函数实现这个搜索。然后从找到的具体位置向后搜索中括号对,在中括号对之间的数值就是要找的数。
如果认为不可以用字符串操作函数,请回复。