编写函数,计算字符串中数字字符、英文字母的个数,通过两个全局变量返回,并删除字符串中的空格
时间: 2024-02-06 12:11:23 浏览: 65
好的,以下是C语言的程序示例:
```c
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int num_count = 0; // 全局变量:数字字符的个数
int alpha_count = 0; // 全局变量:英文字母的个数
void count_and_remove_spaces(char *str) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (isspace(str[i])) {
continue; // 跳过空格
}
str[j++] = str[i]; // 将非空格字符向前移动
if (isdigit(str[i])) {
num_count++; // 统计数字字符的个数
} else if (isalpha(str[i])) {
alpha_count++; // 统计英文字母的个数
}
}
str[j] = '\0'; // 字符串末尾添加'\0',表示字符串结束
}
int main() {
char str[100];
printf("请输入一个字符串:\n");
fgets(str, 100, stdin); // 读入字符串,包括空格
count_and_remove_spaces(str);
printf("删除空格后的字符串为:%s\n", str);
printf("数字字符的个数为:%d\n", num_count);
printf("英文字母的个数为:%d\n", alpha_count);
return 0;
}
```
这个程序中,我们定义了一个`count_and_remove_spaces`函数,该函数的作用是统计数字字符、英文字母的个数,并删除字符串中的空格。在函数中,我们使用了`isspace`、`isdigit`和`isalpha`三个函数来判断字符的类型,使用`strlen`函数获取字符串的长度,使用指针`i`和`j`遍历字符串,使用指针`str`来指向字符串。最后,函数结束后,原字符串中的空格被删除,字符串的内容被更新,数字字符的个数和英文字母的个数通过全局变量返回。在主函数中,我们先读入一个字符串,然后调用`count_and_remove_spaces`函数进行处理,最后输出结果。
阅读全文