复制
收藏
提问
简洁
6-5 分类统计各类字符个数 分数 7 全屏浏览 切换布局 作者 C课程组 单位 浙江大学 本题要求实现一个函数,统计给定字符串中的大写字母、小写字母、空格、数字以及其它字符各有多少。 函数接口定义: void StringCount( char *s ); 其中 char *s 是用户传入的字符串。函数StringCount须在一行内按照 大写字母个数 小写字母个数 空格个数 数字个数 其它字符个数 的格式输出。 裁判测试程序样例: #include <stdio.h> #define MAXS 15 void StringCount( char *s ); void ReadString( char *s ); /* 由裁判实现,略去不表 */ int main() { char s[MAXS]; ReadString(s); StringCount(s); return 0; } /* Your function will be put here */ 输入样例: aZ&*? 093 Az 输出样例: 2 2 1 3 4 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
2个月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
这个问题是一个编程问题,要求实现一个函数StringCount
,用于统计一个字符串中各类字符的数量。下面是这个函数的一个可能的实现:
#include <stdio.h>
#include <ctype.h> // 用于字符类型判断的函数
void StringCount(char *s) {
int upper = 0, lower = 0, space = 0, digit = 0, other = 0;
// 遍历字符串中的每个字符
while (*s) {
if (isupper(*s)) upper++; // 判断大写字母
else if (islower(*s)) lower++; // 判断小写字母
else if (isspace(*s)) space++; // 判断空格
else if (isdigit(*s)) digit++; // 判断数字
else other++; // 其他字符
s++; // 移动到下一个字符
}
// 按照要求的格式输出结果
printf("%d %d %d %d %d\n", upper, lower, space, digit, other);
}
// 以下为测试代码,实际使用时不需要
int main() {
char s[] = "aZ&*?093 Az";
StringCount(s);
return 0;
}
这段代码首先包含了ctype.h
头文件,它提供了一些用于字符类型判断的函数,如isupper
、islower
、isspace
和isdigit
。然后定义了StringCount
函数,它接受一个字符指针s
作为参数。函数内部定义了五个计数器,分别用于统计大写字母、小写字母、空格、数字和其他字符的数量。
在函数的主体中,使用一个while
循环遍历字符串中的每个字符。对于每个字符,使用ctype.h
中的函数来判断其类型,并相应地增加计数器的值。最后,使用printf
函数按照题目要求的格式输出统计结果。
请注意,这段代码是一个示例实现,实际的实现可能需要根据具体的编程环境和要求进行调整。
你觉得结果怎么样?