写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)

本文介绍了一个C语言程序,用于统计输入字符串中指定字符(不区分大小写)的出现次数,通过ASCII码处理大小写转换后进行遍历计数。

数据范围: 1≤n≤1000 

输入描述:

第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。

输出描述:

输出输入字符串中含有该字符的个数。(不区分大小写字母)

对于大小写字母都要统计,查阅ASCII码可知 小写字母从65开始,大写字母从97开始,我们可以将字符串中所有的大写转为小写,或者将小写转为大写,然后遍历字符串进行统计

#include <stdio.h>
#include <string.h>
int main() {
    char a[1000] = { 0 };
    char b = '0';
    gets(a);//获取整个字符串,包括空格
    scanf("%c", &b);//得到某一个字符
    if (b >= 'A' && b <= 'Z')
    {
        b += 32;
    }
    int i = 0;
    int count = 0;//计数标志
    for (i = 0; i <= strlen(a) - 1; i++)//遍历字符串
    {
        if (a[i] >= 'A' && a[i] <= 'Z')
        {
            a[i] += 32;
        }
        if (a[i] == b)
        {
            count++;
        }
    }
    printf("%d\n", count);
    return 0;
}
 

以下为两种同编程语言实现从键盘输入字符串并统计数字字母空格其他字符个数的方法: ### Python实现 ```python # 初始化计数器 word = 0 num = 0 other = 0 space = 0 # 获取用户输入字符串 a = input("请输入一串字符: ") # 遍历字符串中的每个字符 for k in a: # 判断是否为字母 if k.isalpha(): word += 1 # 判断是否为数字 elif k.isdigit(): num += 1 # 判断是否为空格 elif k == ' ': space += 1 # 其他字符 else: other += 1 # 输出统计结果 print('字母个数是:', word) print('数字的个数是: ', num) print('空格的个数是: ', space) print('其他字符个数是: ', other) ``` ### C语言实现 ```c #include <stdio.h> #include <string.h> int main(int argc, char const *argv[]) { // 定义字符数组存储输入字符串 char arr[30] = {""}; // 初始化计数器 int letter = 0, number = 0, space = 0, others = 0, len = 0; // 提示用户输入字符串 printf("请输入一个字符串:"); gets(arr); // 计算字符串的长度 len = strlen(arr); // 遍历字符串中的每个字符 for (int i = 0; i < len; i++) { // 判断是否为字母 if ((arr[i] >= 'a' && arr[i] <= 'z') || (arr[i] >= 'A' && arr[i] <= 'Z')) { letter++; } // 判断是否为数字 else if (arr[i] >= '0' && arr[i] <= '9') { number++; } // 判断是否为空格 else if (arr[i] == ' ') { space++; } // 其他字符 else { others++; } } // 输出统计结果 printf("该字符串字母有%d个,数字有%d个,空格有%d个,其他字符有%d个\n", letter, number, space, others); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值