我的程序要求用户提供一个字符串,它将被复制到一个字符数组中。然后,通过 for
循环,程序只需将第一个数组的元素复制到第二个数组中。
int main() {
int i;
char string1[4], string2[4];
// Get the first string
printf("Insert your string: ");
scanf("%s", string1);
// Copy the values into the second array
for (i = 0; i < 4; i++) {
string2[i] = string1[i];
}
// Print the second string
printf("%s", string2);
return 0;
}
但是,当我使用 printf()
函数打印 string 时,string 被打印了两次。
假设我输入了单词
bars
输出将是
barsbars
为什么会这样?
最佳答案
char string1[4], string2[4];
4 元素的 char 数组对于 4 字符的字符串是不够的。您还需要一个用于终止 '\0'
字符。
关于c - 为什么在 C 中使用 printf 时字符串会打印两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30242182/