#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( void )
{
char line[200];
//prompt user for input
printf( "Please enter input: " );
//attempt to read one line of input
if ( fgets( line, sizeof line, stdin ) == NULL )
{
fprintf( stderr, "Input error!\n" );
exit( EXIT_FAILURE );
}
//remove newline character, if it exists
line[strcspn(line,"\n")] = '\0';
//check number of characters in input
switch ( strlen( line ) )
{
case 0:
printf( "The line is empty!\n" );
break;
case 1:
printf( "The line contains only a single character.\n" );
break;
default:
printf( "The input contains several characters.\n" );
break;
}
}
如果你用fgets代替scanf,你可以让它工作。用**char *fgets(char *str, int n, FILE *stream)**你可以从stdin流中得到字符串。然后你用strlen得到它的大小。如果它大于2(对于大小2,我们有字符本身和换行符),你把字符串的值设置为“\0”。 基本上:
3条答案
按热度按时间vktxenjb1#
一种解决方案是使用
fgets
将整行输入作为字符串读取,然后检查字符串的长度:此程序具有以下行为:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
lymgl2op2#
n8ghc7c13#
如果你用fgets代替scanf,你可以让它工作。用**
char *fgets(char *str, int n, FILE *stream)
**你可以从stdin流中得到字符串。然后你用strlen得到它的大小。如果它大于2(对于大小2,我们有字符本身和换行符),你把字符串的值设置为“\0”。基本上: