【以下回答由 GPT 生成】
这个问题是因为scanf函数在输入字符串时会将换行符(\n)留在输入缓冲区中。而之后的第一个scanf函数会读取到这个换行符,导致似乎输入了两次字符串。
要解决这个问题,可以在%s格式符之前添加一个空格来跳过输入缓冲区中的换行符。以下是一个示例代码:
#include <stdio.h>
int main() {
char str[100];
printf("请输入字符串: ");
scanf(" %s", str); // 在%s之前加上空格
printf("您输入的字符串是: %s\n", str);
return 0;
}
在这个示例代码中,我们在%s之前添加了一个空格,这样就会跳过输入缓冲区中的换行符。这样就能够正常地输入一个字符串,而不会出现输入两次相同的字符串的情况。
希望这个解决方案能够帮助你解决问题!如果有任何疑问,请随时提问。
【相关推荐】
第一,你数组长度太小了
第二,你输入之后又没有其他操作,所以程序自动退出了啊,后面那个提示是告诉你程序结束
你读取数组后啥也没干啊!