大家好,欢迎来到IT知识分享网。
在日常敲代码学习中,我们经常碰到求一串字符中所包含字符的题目,小编也总结了几种求字符个数的方法。
一、求各类字符的数量
思路其实比较简单,就是用c语句分类统计各类字符数量
123cyua zmcaja acaasa}}}[
#include <stdio.h> int main() { char c; \\定义字符串 int letters=0,space=0,digit=0,other=0; \\定义字符初始量数量 while ((c=getchar())!=EOF) \\运用循环语句读到文件结尾截止 { if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z') \\计算大写字母和小写字符数量 letters++; else if (c == ' ') \\计算空格数量 space++; else if (c >= '0'&&c <= '9') \\计算数字数量 digit++; else other++; \\其他字符数量 } printf("%d %d %d %d",letters,space,digit,other); return 0; }
二、统计单词个数
当c程序中读取一段字符时,计算机并不会像人的大脑一样读取单词计算数量,那将如何让计算机成功统计出单词数量呢?
因为每个单词的长短不一,字母不一致,计算机是很难判断出输入的字符串是不是单词的,但是,计算机虽然不认识单词,但是可以读取出空格啊。因此,我们可以让计算机读取字符串中的空格,
thank you very much
我们不难看出,单词数=空格数+1 ,因此,可编写c程序
#include <stdio.h> int main() { char a[100]; int i, in_word, word_num; gets(a); word_num = 0; // 初始化单词个数为0 in_word = 0; // 标记位,标记是否在单词内 for (i = 0; a[i]; i++) { if (a[i] == ' ') { // 检测到空格 in_word = 0; // 设置标记位为不在单词内 } else if (in_word == 0) { // 在单词内 word_num++; // 统计单词个数 in_word = 1; // 设置标记位为在单词内 } } printf("%d", word_num); return 0; }
总结:C语言是一种有规律的的语言,运用适当的方法编写程序会让程序更简单,效率更高,如果大家有什么更好的方法,欢迎大家评论指点!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118263.html