gpt4 book ai didi

c - (新手) strstr() 返回带有无符号参数的 null

转载 作者:行者123 更新时间:2023-11-30 15:55:34 24 4
gpt4 key购买 nike

我对这段代码有疑问 >

int parse_useragent (unsigned char* buf )
{
int i;
for (i=1; i < 200; i++)
{
printf("%c ", buf[i-1]); // this prints string with "User-Agent" inside
}

unsigned char * scanner = strstr(buf, "User-Agent:"); //returns NULL?

if (scanner == NULL)
{
printf("NULL!!! /n");
return DEFAULT_USERAGENT;
}

/* ... */

strstr 函数返回 NULL,尽 pipe 字符串在那里......我相信 unsigned char* buf 有问题,是否有任何快速转换的方法,以便我能够使用 strstr 函数?

最佳答案

正确打印缓冲区以了解空字符可能出现的位置:

printf("%s\n", buf);

您的方法存在几个问题:

  • <罢工> buf[0]可能已经是空字符,C 中的数组从 0 开始而不是 1
  • %c当遇到空字符时可能不打印任何内容
  • strstr在第一个空字符处停止

关于c - (新手) strstr() 返回带有无符号参数的 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12019194/

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