c语言如何跳过输入的空白字符直接读取数据

代码如下
#include <stdio.h>
#include <string.h>
int main (void)
{
char letter;

printf("Please input a letter:");
scanf("%c",&letter);

if(letter>=97&&letter<=122)
printf("%c",letter-32);

else
printf("%c",letter);

return 0;
}
输入时不加空白字符可以正确输出,但输入时在letter前加入n个空格后就什么都输出不了,怎么跳过前面的空格?

有两种处理方法.

    方法一,通过char字符判断是否==' '。如果是空格字符跳过。

    例程:


    #include <stdio.h>
    #include <string.h>
    int main (){
        char letter;
        printf("Please input a letter:");
        do { scanf("%c",&letter);} while( letter == ' ' ); //当是空格是,继续读
        if(letter>=97&&letter<=122)
        printf("%c",letter-32);
        else
        printf("%c",letter);
        return 0; 
    }

    方法二,直接用格式输入行数scanf跳过空白字符。

    在scanf格式输入当中,空格符是作为分隔符号而存在的。

    例程:

    #include <stdio.h>
    int main (){
        char s[100];
        printf("Please input a letter:");
        while(scanf("%s",s)!=EOF){
           printf(s);
       }
        return 0;
    }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-21

空白字符也是字符,所以,如果想跳过就需要进行检查处理:

#include <stdio.h>
#include <string.h>
int main (void)
{
char letter;

printf("Please input a letter:");
do { scanf("%c",&letter);} while( letter == ' ' ); //当是空格是,继续读

if(letter>=97&&letter<=122)
printf("%c",letter-32);

else
printf("%c",letter);

return 0;
}

本回答被提问者和网友采纳
相似回答