gpt4 book ai didi

c - strtok 和 strncat 错误

转载 作者:行者123 更新时间:2023-12-04 05:09:00 26 4
gpt4 key购买 nike

我想通过使用 strtok 和 strncat 为每个单词添加字符串“ay”。但似乎有一个我找不到的地方有冲突。它只给了我输出的第一个词“Computeray”。帮助?

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

int main(void)
{
char str[] = "Computer science is hard";
char* Token;
char* work = "ay";
Token = strtok(str, " ");

while (Token != NULL)
{
strncat(Token, work, 2);
printf("%s", Token);
Token = strtok(NULL, " ");
}
return 0;
}

最佳答案

您正在修改字符串(使用 strcat )并期待 strtok仍然表现得很好——那是行不通的。而不是使用 strcat ,只需打印 "ay"分别:

while (Token != NULL)
{
printf("%say ", Token);
Token = strtok(NULL, " ");
}

即使它按照您希望的方式工作,您也会在此过程中覆盖大量输入。可能不是你想要的——如果你需要建立一个全新的字符串,你应该把它放到一个新的缓冲区中,而不是覆盖输入。

关于c - strtok 和 strncat 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15122990/

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