统计字符串中大写字母、小写字母、空格、数字以及其他字符的个数

本文介绍了如何使用C语言编写一个名为`count`的函数,统计输入字符串中的大写字母、小写字母、空格、数字和其他字符的数量,并将结果存储在整数数组中,供`main`函数调用并显示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目要求:编写函数void count(char *str,int *a),统计字符串str中大写字母、小写字母、空格、数字以及其他字符的个数,统计的结果保存到数组a中,在main函数中调用该函数。


  • 如果 str[i] 是大写字母,那么 str[i] 为A~Z
  • 如果 str[i] 是小写字母,那么 str[i] 为a~z
  • 如果 str[i] 是空格,那么 str[i] = ' '
  • 如果 str[i] 是数字,那么 str[i] 为0~9

#include <stdio.h>
#include <string.h>
void count(char str[], int a[]) {
	int caps = 0, little = 0, space = 0, num = 0, other = 0;
	for (int i = 0; i < strlen(str); i++) { //统计个数
		if (str[i] >= '0' && str[i] <= '9') {
			num++;               //数字个数
		}
		else if (str[i] == ' ') {
			space++;            //空格个数
		}
		else if (str[i] >= 'A' && str[i] <= 'Z') {
			caps++;            //大写字母个数
		}
		else if (str[i] >= 'a' && str[i] <= 'z') {
			little++;         //小写字母个数
		}
		else {
			other++;         //其他
		}
	}
	a[0] = caps;
	a[1] = little;
	a[2] = space;
	a[3] = num;
	a[4] = other;
}
int main() {
	char str[1024];
	int a[10];
	printf("请输入字符串:\n");
	gets(str);
	count(str, a);
	printf("该字符串中:\n大写字母%d个\n小写字母%d个\n空格%d个\n数字%d个\n其他字符%d个", a[0], a[1], a[2], a[3], a[4]);
	return 0;
}

测试结果:

 


 

以下是使用指针法统计字符串大写字母小写字母空格数字个数的示例代码: ```c++ #include <iostream> #include <cstring> using namespace std; int main() { char str[100]; int upper = 0, lower = 0, space = 0, digit = 0; cout << "Enter a string: "; cin.getline(str, 100); char *ptr = str; while (*ptr != '\0') { if (*ptr >= 'A' && *ptr <= 'Z') upper++; else if (*ptr >= 'a' && *ptr <= 'z') lower++; else if (*ptr == ' ') space++; else if (*ptr >= '0' && *ptr <= '9') digit++; ptr++; } cout << "Upper case letters: " << upper << endl; cout << "Lower case letters: " << lower << endl; cout << "Spaces: " << space << endl; cout << "Digits: " << digit << endl; return 0; } ``` 首先,我们声明一个字符组 `str`,用于存储输入的字符串。然后,我们声明四个变量 `upper`、`lower`、`space` 和 `digit`,分别用于存储大写字母小写字母空格数字个数。 接下来,我们使用 `cin.getline()` 函从标准输入中读取字符串,并将其存储到 `str` 组中。 然后,我们声明一个字符指针 `ptr`,并将其初始化为 `str`,指向字符串的第一个字符。接着,我们使用 `while` 循环遍历字符串中的每个字符,直到遇到字符串的结尾符 `\0`。 在循环中,我们使用 `if` 语句判断当前字符是否为大写字母小写字母空格数字,并根据判断结果将相应的计器加一。 最后,我们输出计器的值,即为统计结果。 注意,在本示例中,我们使用了字符的 ASCII 码值来进行判断。大写字母的 ASCII 码值范围为 65~90,小写字母的 ASCII 码值范围为 97~122,空格的 ASCII 码值为 32,数字的 ASCII 码值范围为 48~57。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可可南梨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值