在日常敲代码学习中,我们经常碰到求一串字符中所包含字符的题目,小编也总结了几种求字符个数的方法。

一、求各类字符的数量

思路其实比较简单,就是用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语言是一种有规律的的语言,运用适当的方法编写程序会让程序更简单,效率更高,如果大家有什么更好的方法,欢迎大家评论指点!

更多推荐

C语言中计算字符个数