gpt4 book ai didi

C 初学者 : string parsing

转载 作者:太空狗 更新时间:2023-10-29 17:21:41 26 4
gpt4 key购买 nike

我正在尝试解析以下 HTTP 响应:

HTTP/1.1 200 OK
Date: Tue, 06 Dec 2011 11:15:21 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.9
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 48
Content-Type: text/html

��(�ͱ���I�O����H�����ч��
�4�@�B�$���S

我想提取“48”和二进制内容。

这是我到目前为止尝试过的:

  //char* str contains the response
char * pch;
printf ("Splitting response into tokens:\n");
pch = strtok (str,"\r\n");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, "\r\n");
}

但我现在有点卡住了...非常感谢任何帮助。


编辑:

这是我到目前为止所做的:

char* pch;
char* pch2;
pch=strstr(buf,"Content-Length:");
pch2=strstr(pch,"\r\n");

如何获取这两个指针之间的位?


编辑:解决方案:

        char* pch;
char* pch2;
pch=strstr(buf,"Content-Length:");
int i=0;
char contLen[20];
for(i=0;i<20;i++){
char next=pch[strlen("Content-Length:")+i];
if(next=='\r' || next=='\n'){
break;
}
contLen[i]=next;
}
printf("%d\n",atoi(contLen));

最佳答案

您为什么不搜索字符串 "Content-Length:",然后从那一点继续前进?

可以使用strstr()找到str中的位置,然后将char指针向前移动strlen("Content-Length:") 位置,然后使用 atoi() 读取值。

不需要对整个字符串进行标记。

关于C 初学者 : string parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8399129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com