char buf[256];
ssize_t bytes_read;
/* Read some data from the client. */
bytes_read = read (fd, buf, sizeof (buf) - 1);
buf[bytes_read] = '\0';
printf ("Buffer %s", buf);
这是输出显示。
GET /index.html HTTP / 1.1
主持人:127.0.0.1:8080
User-Agent:Mozilla / 5.0(X11; Ubuntu; Linux x86_64; rv:33.0)Gecko / 20100101 Firefox / 33.0
接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
接受语言:en-US,en; q = 0.5
Accept-EncoMy主机名:ubuntu 文件:58HTTP / 1.1 200 OK
日期:2015年3月3日星期二15:56:02
服务器:主机服务器
Last-Modified:星期二,2015年2月17日00:19:56
内容类型:text / html
内容长度:58
我只需要存储“127.0.0.1”。 请提出建议。谢谢。
答案 0 :(得分:1)
c字符串处理库的参考:link
您似乎想要做的通常称为"拆分字符串"。 在你的情况下,你会在行尾分割。 请注意,根据您的输入,这可能是" \ n"或" \ r \ n"
您需要的功能是strtok 该链接包含一个关于如何拆分字符串的非常好的示例。
你只需要按" \ n"例如:
char *token = strtok(input, "\n");
while(token) {
printf(token);
token = strtok(NULL, "\n");
}
您现在可以逐个保存您的行以供以后使用,或者您可以保留一个计数器并处理第二行,然后退出(如果这就是您需要的全部内容),而不是printf。