gpt4 book ai didi

c - 如何根据另外两根字符串制作一根字符串?

转载 作者:行者123 更新时间:2023-11-30 20:14:53 25 4
gpt4 key购买 nike

我正在尝试根据另外两个字符串制作一个混合字符串,例如,string1 =“Good Morning”和 string2 =“Hello 大家”,所以我的脚本将输出这样的内容:“Good Hello,大家好”。

我几乎已经完成了..我尝试过:

int main() {
char frase1[99];
char frase2[99];
int i =0;
char frase3[99];

printf("Type a sentence: ");
gets(frase1);
printf("Type a sentence: ");
gets(frase2);

char * pch1;
char * pch2;

pch1 = strtok (frase1," ");
pch2 = strtok (frase2," ");

while (pch1) {
strcat(frase3,pch1);
pch1 = strtok (NULL, " ");

strcat(frase3,pch2);
pch2 = strtok (NULL, " ");
}
puts(frase3);
}

输出:示例:frase1 =“早上好”; frase2 = "嘿伙计们";输出:错误

最佳答案

你的问题很简单:

  1. strtok 不是通灵者,也不知道您想要恢复较早的标记序列,而不是它最后处理的标记序列。
  2. 当它无法返回 token 时,它只会返回 NULL,您对此进行测试为时已晚

采用替换函数 strtok_s (可选 C99 #define __STDC_WANT_LIB_EXT1__ 1)或 strtok_r (POSIX),它是可重入的,因为它确实不使用任何静态内部存储。
如果两者都做不到,请保存第一个序列,然后获取第二个序列。

下一个问题是两个句子中的标记数量不同。

您将遇到的最后一个问题(如果 frase1frase2 足够长)是溢出 frase3:这应该至少为只要两者结合起来。

关于c - 如何根据另外两根字符串制作一根字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690888/

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