对于以下代码,我添加了两个printf语句来测试两个字符串是否被正确读取。然而,当我输入类似:abcabcabcza,CB 的输出:使用getchar()读取两个字符串
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”以便printf知道停止打印的位置。 temp3 []和temp4 []具有未定义的值。 – bestalign
你能详细解释一下吗?我怎样才能防止这一点? – Jobs
用0填充temp3 []和temp4 [] 0 – bestalign