标题:想问问各位大神关于scanf和getchar和gets的区别问题
只看楼主
公良长卿
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-7-8
结帖率:0
已结贴  问题点数:10 回复次数:2 
想问问各位大神关于scanf和getchar和gets的区别问题
这时一个计算字符串中字母,数字,空格个数的程序。
#include<stdio.h>
#include<string.h>
void main()
{
    char s;

    int letter=0,space=0,number=0,others=0;
    printf("please input\n");

    while((s=getchar())!='\n')
    {
            if((s>='a'&&s<='z')||(s>='A'&&s<='Z'))
            
                letter++;
            
                else if(s>='0'&&s<='9')
               
                    number++;
               
                    else if(s==' ')
                        space++;
                        else
                        others++;
               
        
    }    printf("letter=%d,number=%d,space=%d,others=%d\n",letter,number,space,others);
}
但经过实验,若是有scanf输入字符串,程序没错误但也没有响应。用gets会有错误。用getchar正确。求解为什么?多谢啊
搜索更多相关主题的帖子: include please number letter others 
2013-10-28 19:23
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
得分:5 
scanf 通过控制 可以输入任意格式


getchar 接收单个字符


gets   接收一个字符串(字符数组)

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-10-28 19:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:5 
不同的函數有不同的行爲特性,使用哪個函數取決於你程序的設計思路。看懂自己代碼的算法思路,哪有不知道該用哪個函數的道理!

授人以渔,不授人以鱼。
2013-10-29 11:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-422665-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.106396 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved