📜  用 C 编写程序来计算字符串中字母、数字和特殊字符的总数. - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:27:09.031000             🧑  作者: Mango

用 C 编写程序来计算字符串中字母、数字和特殊字符的总数

我们经常需要在字符串中计算出不同类型字符的数量,比如字母、数字和特殊字符等。在 C 语言中通过遍历整个字符串来实现这个功能是相对简单的,本文将介绍如何用 C 编写这个程序。

程序主要思路
  • 从命令行输入一个字符串
  • 遍历字符串中的每个字符
  • 判断每个字符是数字、字母还是特殊字符
  • 统计三种类型字符的数量
  • 输出统计结果
代码实现
#include <stdio.h>

int main()
{
    char str[100];
    int i, digits=0, letters=0, specials=0;
    
    printf("Please enter a string:\n");
    scanf("%[^\n]s", str); // 读取整个字符串直到换行字符
    
    for (i=0; str[i]!='\0'; i++){
        if (str[i]>='0' && str[i]<='9'){
            digits++;
        }
        else if ((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z')){
            letters++;
        }
        else{
            specials++;
        }
    }
    
    printf("Digits: %d\n", digits);
    printf("Letters: %d\n", letters);
    printf("Specials: %d\n", specials);
    
    return 0;
}
代码解释
  1. 定义字符数组 str 来存储输入的字符串,整数类型变量 digitslettersspecials 用来统计相应类型字符的数量。
  2. 打印提示信息 Please enter a string:\n 并从命令行输入字符串,并用 scanf 函数将整个字符串读入到 str 数组中。%[^\n]s 表示读取字符串中的所有字符直到换行符。
  3. 使用 for 循环遍历 str 数组中的每个字符,依次进行类型判别。
  4. 当字符为数字时,digits++,表示统计了一个数字字符。
  5. 当字符为字母时,letters++,表示统计了一个字母字符。
  6. 当字符既不是数字也不是字母时,specials++,表示统计了一个特殊字符。
  7. 最后,打印统计结果 digitslettersspecials
总结

本文介绍了用 C 编写程序来计算字符串中字母、数字和特殊字符的总数。主要思路是利用循环遍历字符串中的每个字符,按照其类型进行计数。我们提供了完整的代码实现,并解释了代码的每一部分。