需要一种使输入字符串以空格开头的解决方案吗?
我知道一种在输入中包含空格的方法
scanf("%[^\n]s", s);
但是它仅适用于单词之间的间隔。我需要一个以空格开头的字符串的解决方案。而且我还需要变量中的起始空格
尝试一下。输入exit
退出程序。它为我接受了领导空间。扫描集%99[^\n]
最多可以将99个字符扫描到s[100]
或换行符中。如果要扫描的下一个字符是换行符,则扫描集将失败。换行符将保留在输入流中。 while ( '\n' != getchar ( )) {}
将读取并丢弃超过99个字符和换行符的任何字符。删除换行符后,可以输入前导空格。可能存在使用scanf
或%s
的先前的%d
,...这样的scanf可能在输入流中留下换行符,从而导致scanset失败。
#include <stdio.h>
#include <string.h>
int main ( void) {
char s[100] = "";
int result = 0;
while ( 1) {
printf ( "enter line of text (exit)\n");
result = scanf ( "%99[^\n]", s);
if ( EOF == result) {
break;
}
while ( '\n' != getchar ( )) {}
if ( ! strcmp ( "exit", s)) {
break;
}
if ( 1 == result) {
printf ( "entered text is: %s\n", s);
}
}
return 0;
}
使用gets(s);希望它会对您有所帮助。