繁体   English   中英

通过回车拆分C

[英]Split String by Carriage Return C

我有一个问题,我试图通过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");

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

你这样做吗?

#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;
}

输出:

GET /pub/WWW/TheProject.html HTTP/1.1   
Host: www.w3.org

请查看以下链接:

strtok()如何将字符串拆分为C中的标记?

int main()
{
    char request[20]="some\r\nstring";
    char* split_request;
    split_request = strtok(request,"\r\n");
    while(split_request != NULL)
    {
       printf("%s\n",split_request);
       split_request = strtok(NULL,"\r\n");

    }

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM