0 赞 0 踩
其他回答
我用C语言实现给出一个思路。对于题主的问题,可以考虑使用getchar()函数来实现,具体的步骤是这样的:
- 使用getchar()函数从stdin,更准确的说,是从缓冲区中逐个读入字符;
- 判断当前读入的字符属于数字还是字母还是空白字符还是其他字符;
- 根据当前读入的字符类型,使得对应的字符计数器自增1;
- 如果读取到EOF,则表明读取完毕。
上述步骤中,有几个技术点需要你去了解的:getchar()函数的使用,缓冲区的概念,标准输入stdin的概念,输入结尾标记EOF的概念。关于这些概念,我在另一个回答中已经阐明,有兴趣的可以参考我的这个回答:C语言统计输入的字符数? - 百晓知道
回到当前问题中来,按照上述思路,可以初步拟定一份代码如下:
#include <stdio.h>#include <ctype.h>/*欢迎关注:微博: http://weibo.com/520JDH微信: C语言编程技术分享 百晓知道: zhihu.com/people/520WXCSDN博客: http://blog.csdn.net/kelehaier */int main(void){ int digit_count = 0, alpha_count = 0, blank_count = 0, other_count = 0; int ch; while( (ch = getchar()) != EOF ) { if(isdigit(ch)){ digit_count++; continue; } if(isalpha(ch)){ alpha_count++; continue; } if( (ch == '/n') || (ch == ' ') || (ch == '/t') ){ blank_count++; continue; } other_count++; //putchar(ch); } putchar('/n'); printf("数字字符个数: %d/n", digit_count); printf("字母字符个数: %d/n", alpha_count); printf("空白字符个数: %d/n", blank_count); printf("其他字符个数: %d/n", other_count); return 0;}
代码不长,应该比较好理解。换行符'/n'、空格符' '、制表符'/t'都算作空白字符。
但是对于统计中文字符,代码还有所欠缺,不过对于统计一般的字符应该绰绰有余了。我运行了下,结果如下:
最后我是以CTRL+Z来模拟键盘输入结束!
题主有兴趣,可以关注我的微信公众号“C语言编程技术分享”或者扫描我头像关注我,会有C语言编程相关文章分享!
石家的鱼 2小时前 0条评论 0 赞 0 踩
字母数字空格好办,POSIX和M$都有相应的扩展函数可以判断字母数字;中文稍微麻烦,GBK还算简单读第一个字节如果不是字母数字空格就判断是否大于0x80小于0xFF,然后继续往后读一个字节看是否大于0x40,且不等于0x7F或者0xFF 必须同时满足这两个条件才算一个GBK的字符
参考文献 Windows Codepage 936
写了一个例子,没认真写
yang leonier 2小时前 0条评论
参考文献 Windows Codepage 936
写了一个例子,没认真写
#include <stdio.h>#include <string.h>int main(int argc, char* argv[]){ unsigned char Seq[256]; int i,l; int nAlpha = 0, nNum = 0, nSpace = 0, nGBK = 0; printf("Input a sequence:/n"); fgets(Seq, 256, stdin); l = strlen(Seq); for(i = 0; i < l; ++i) { if(isdigit(Seq[i])) { ++nNum; continue; } if(isalpha(Seq[i])) { ++nAlpha; continue; } if(Seq[i]==0x20) { ++nSpace; continue; } if(Seq[i]<0xFF && Seq[i]>0x80) { if(Seq[i+1] > 0x40) if(Seq[i+1]!=0x7F && Seq[i+1]!=0xFF) { ++nGBK; ++i; continue; } } } printf("%d Alphabets, %d Numbers, %d Spaces, %d GBK 2-byte Characters in the sequence/n", nAlpha, nNum, nSpace, nGBK);}
运行测试 0 赞 0 踩
登录后可回答 提交回答
关键词 :
- 上一个:我24春 大专学历 日语零基础 想去日本学广告要设计?
- 下一个:其次本英语专业女生考研好还是考公务员好?
推荐资讯
点击排行