gpt4 book ai didi

c - 在 C 中使用 Strtok 获取字符串

转载 作者:行者123 更新时间:2023-11-30 14:27:36 26 4
gpt4 key购买 nike

我想将一个字符串分成三部分。

gets(input);

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

first = strtok (input, " ");
second = strtok ( NULL, " " );
others = "";
while(input != NULL){
tmp = strtok ( NULL, " " );
strcat(others,tmp);
}

像这样...所以我想将第一个单词、第二个单词放入字符串中,将其他单词放入字符串中。此代码失败,我该如何解决这个问题?

最佳答案

C 中的字符串并不神奇,它们是字符数组。您不能只是将 strcat 转换为只读的空字符串。相反,您必须提供自己的目标字符串:

char others[1000] = { 0 };
char * tmp;

// ...

while ((tmp = strtok(NULL, " ")) != NULL)
{
strcat(others, tmp);
}

您还使用了inputtmp错误;在处理之前,您应该检查 strtok 的结果。

这有点危险,因为您无法控制结果字符串的长度。您应该使用 strncat 来代替,但这意味着您还必须对附加字符进行计数。

关于c - 在 C 中使用 Strtok 获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713603/

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