gpt4 book ai didi

c - 使用 getchar() 读取两个字符串

转载 作者:行者123 更新时间:2023-11-30 21:45:27 29 4
gpt4 key购买 nike

对于下面的代码,我添加了两个 printf 语句来测试两个字符串是否正确读取。但是,当我输入以下内容时: abcabcabcza,cb输出是:

abcabcabcza▒

cb9

有谁知道第一个字符串末尾的符号和第二个字符串末尾的“9”来自哪里?非常感谢!

printf("\nEnter two words, seperated by a comma:  ");
int temp1, temp2, index3, index4; char temp3[20], temp4[20];
index3=index4=0;
while((temp1 = getchar())!= ','){
temp3[index3++] = temp1;
}
printf("\n%s", temp3);
while((temp2 = getchar())!= '\n'){
temp4[index4++] = temp2;
}
printf("\n%s", temp4);

最佳答案

在打印之前,您需要在字符串中添加字符串终止符 '\0'(或者首先将缓冲区内存清零)。

另外:您已声明大小为 20 的缓冲区,但代码中没有保护措施来尊重分配的长度,这意味着您可能会溢出它们并损坏内存。 [使用两个大于 20 个字符的单词运行...]

关于c - 使用 getchar() 读取两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621793/

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