gpt4 book ai didi

c - 将字符串分成更小的字符串

转载 作者:行者123 更新时间:2023-12-04 10:14:33 24 4
gpt4 key购买 nike

我有以下字符串 abcd1234,我想找到一种方法将这个字符串分成两个不同的字符串,abcd1234。我尝试了以下代码:

char buf[100],*str1,*str2;
int x;
fgets(buf,sizeof(buf),stdin);
str1=strtok(buf,"0123456789 \t\n");
str2=strtok(NULL," \n\t\0");
puts(str1);
puts(str2);
x=atoi(str2);
printf("x=%d", x);

但输出是 abcd 234。如果我用一个字母和一个数字尝试它,例如 a2 我只在输出上取 e 而 x 是 0。

最佳答案

根据 strtok()man page

Each call to strtok() returns a pointer to a null-terminated string containing the next token. This string does not include the delimiting byte. [...]

因此,当第一次使用 "0123456789\t\n" 作为分隔符时,1 将被视为实际分隔符,并且不会被考虑后续解析。

您可能希望使用 strcspn() 和/或 strpbrk() 来查找所需子字符串的索引并进行相应的解析。

关于c - 将字符串分成更小的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35033826/

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