新手C++字符串问题,请高手赐教

来源:百度知道 编辑:UC知道 时间:2024/07/05 05:51:58
我是个C++新手,用WINSOCK写了一小段代码用来GET远程服务器上的页面。

char buffer[512];
ZeroMemory(buffer, 512);
ret = recv(sock, buffer, sizeof(buffer)-1, 0);

得到了所有服务端的反馈,包括HTTP头,我该怎么把头和实际页面数据分离开来?我看到HTTP头里面有一个:

Content-Length: (数字)

我该怎么把这个数字读到一个int里?

我是个新手,对于C++字符串处理还不是很明白。

还有,我看示例里为什么读进buffer的时候要sizeof-1?为什么不填满这个数组?

如能解答,一定高分追加重谢
HTTP头的长度是不定的,行数也是不定的,一行一项。所以没法定位。这个数字后面是\n了。我该怎么读这个数字?

1、通常一个协议里都规定了第多少字节是什么内容,你要读取他的内容,只需要将指针移动到相应的位置读取相应的长度,再转换成数字就可以了。

2、因为如果最后一位爷填满了的话,字符串就没有结束符,这样很危险的,像strcpy,printf这些函数使用的时候就会出错