关于统计字符串内容的问题

C语言 码拜 8年前 (2017-05-06) 1475次浏览
看了半天也没看出来哪里错了,统计结果把全部输入的字符都算作其他了,不是别字母和数字

#include<stdio.h>
#include<ctype.h>
int alpha=0,num=0,el=0;
void main()
{
	char a;
	puts("请输入一行字符");
		while(a=getchar()!="\n")
	{
		//if(a>="a"&&a<="z")
		if(isalpha(a))
			alpha++;
		if(isdigit(a))
			num++;
        else
			el++;
	}
	printf("字母%d,数字%d,其他%d\n",alpha,num,el);
}
解决方案

40

#include<stdio.h>
#include<ctype.h>
int main()
{
    int ch;
    int alpha = 0, num = 0, el = 0;
    puts("请输入一行字符");
    while ((ch = getchar()) != "\n") {
        if(isalpha(ch))
            alpha++;
        else if(isdigit(ch))
            num++;
        else
            el++;
    }
    printf("字母%d,数字%d,其他%d\n", alpha, num, el);
    return 0;
}

1. while判断需要加一个括号: while ((ch = getchar()) != “\n”)
2. 判断字符是什么,要用if .. else if … else,假如第二个else不加,例如输入的是”a”会在判断不是数字,那么近视其他了。所以,需要加else if …
3. 建议用局部变量,假如没有需要,建议不用全局变量;从数据安全和代码维护角度上考虑。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于统计字符串内容的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)