通过回车拆分C

use*_*561 2 c string split httprequest webproxy

我有一个问题,我试图通过Web代理的回车分割HTTP请求.请求似乎没有拆分.

以下是一个示例请求:GET /pub/WWW/TheProject.html HTTP/1.1\r \nHost:www.w3.org\r \n

我的尝试是:

char* split_request;
split_request = strtok(request, "\r\n");
Run Code Online (Sandbox Code Playgroud)

但它永远不会分裂?我不确定我错过了什么.当我使用wget或浏览器测试Web代理时,它似乎分裂了,但是没有使用telnet.

Jag*_*ath 6

你这样做吗?

#include <stdio.h>
#include <string.h>

int main (void)
{
    char str[] = "GET /pub/WWW/TheProject.html HTTP/1.1\r\nHost: www.w3.org\r\n";
    char* pch = NULL;

    pch = strtok(str, "\r\n");

    while (pch != NULL)
    {
        printf("%s\n", pch);
        pch = strtok(NULL, "\r\n");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

GET /pub/WWW/TheProject.html HTTP/1.1   
Host: www.w3.org
Run Code Online (Sandbox Code Playgroud)

  • 我忽略了头文件iostream和cstring.现在编辑. (2认同)