gpt4 book ai didi

c - 我试图用定界符拆分字符串,但它不起作用,为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:07 25 4
gpt4 key购买 nike

我写了下面的代码来逐行读取标准输入 ex。

city=Boston;city=New York;city=Chicago\n

and then split each line by ';' delimiter and print each record.

But for some reason the "record" pointer comes back always null. Why?

    char    del = ';';
char input[BUFLEN];

while(fgets(input, BUFLEN, fp)) {

input[strlen(input)-1]='\0';
char* record = strtok(input, &del);

while(record) {
printf("Record: %s\n",record);
record = strtok(NULL, &del);
}
}

最佳答案

strtok 的第二个参数需要一个末尾带有 nul(零字节)的字符串。将 del 更改为

 char * del = ";"

这是一个完整的程序(减去输入读取部分):

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

int main ()
{
char* del = ";";
char * input = strdup ("city=Boston;city=New York;city=Chicago\n");
char* record = strtok (input, del);
while (record) {
printf("Record: %s\n",record);
record = strtok (NULL, del);
}
}

试一试:http://codepad.org/tzzxjOJE

还有一个strsep function其优点是一次可以处理多个字符串。

关于c - 我试图用定界符拆分字符串,但它不起作用,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1726721/

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