如何使用C语言中的函数分别统计一个字符串中大写字母、小写字母、空格、数字和特殊字符的数量?
时间: 2024-12-09 09:14:08 浏览: 14
在C语言中,你可以创建五个函数分别负责计数大写字母、小写字母、空格、数字和特殊字符。这里是一个简单的例子:
```c
#include <stdio.h>
#include <ctype.h> // 包含ctype头文件用于处理字符分类
// 函数声明
int count_uppercase(char *str);
int count_lowercase(char *str);
int count_spaces(char *str);
int count_digits(char *str);
int count_special_chars(char *str);
void main() {
char str[] = "Hello World! 123 @#$%"; // 测试字符串
printf("Uppercase letters: %d\n", count_uppercase(str));
printf("Lowercase letters: %d\n", count_lowercase(str));
printf("Spaces: %d\n", count_spaces(str));
printf("Digits: %d\n", count_digits(str));
printf("Special characters: %d\n", count_special_chars(str));
}
// 函数实现
int count_uppercase(char *str) {
int count = 0;
while (*str) {
if (isupper(*str)) {
count++;
}
str++;
}
return count;
}
int count_lowercase(char *str) {
int count = 0;
while (*str) {
if (islower(*str)) {
count++;
}
str++;
}
return count;
}
int count_spaces(char *str) {
int count = 0;
while (*str) {
if (isspace(*str)) {
count++;
}
str++;
}
return count;
}
int count_digits(char *str) {
int count = 0;
while (*str) {
if (isdigit(*str)) {
count++;
}
str++;
}
return count;
}
int count_special_chars(char *str) {
int count = 0;
while (*str) {
if (!isalnum(*str) && !isspace(*str)) { // 非字母和非数字不是空格也算作特殊字符
count++;
}
str++;
}
return count;
}
```
在这个例子中,`isupper()`、`islower()`、`isspace()` 和 `isdigit()` 是ctype库中的函数,用于判断字符是否为大写字母、小写字母、空格或数字。
阅读全文