程序是比较字符串,但是当我执行它时,间距有问题。当我输入带间距的第一个字符串时,程序只是跳转到比较字符串,不允许我输入第二个字符串,如下所示:
>>"Enter first string":
"Hello Hey"
">>Enter second string:"
">>First string is more than the second string."
这是我的代码:
#include<stdio.h>
#include<string.h>
int main (void) {
int result; //store results
char input1[50];
char input2[50];
printf("Enter first string:\n");
scanf("%[^\n]s",input1);
printf("Enter second string:\n");
scanf("%[^\n]s",input2);
result = strcmp(input1, input2);
if (result==0)
printf("First string is equal to second string\n");
if (result>0)
printf("First string is greater than second string\n");
if (result<0)
printf("First string is less than the second string\n");
return 0;
}
答案 0 :(得分:1)
我认为您可以使用此功能stdlib.h
来执行此操作:
gets(input1);
gets(input2);
当然,POSIX
方式可行,您可以使用read从stdin获取行:
read(STDIN_FILENO, input1, 50)
答案 1 :(得分:1)
添加空格:
scanf(" %[^\n]s",input1);
scanf(" %[^\n]s",input2);
它将消耗先前输入中遇到的所有空白区域。
输入任何输入时,您还可以输入一个换行符号(空白区域)。并且您的代码中的第二个scanf
正在读取该换行符。
问题:
如何在执行期间允许读取空格? (问题)
您已使用[^\n]
中的scanf("%[^\n]s",input1);
进行此操作,这意味着在遇到新行(\n
)之前读取输入。此外,并非\n
本身也不会以这种方式阅读。
<强>输出:强>
Enter first string:
Strings in C
Enter second string:
Strings in C
First string is equal to second string