编写函数 void statOfStr ( char str [])统计一个字符串中大写字母、小写字母、数字字符、空格和其它字符出现的次数,并输出
时间: 2024-05-02 20:20:01 浏览: 82
您好!我可以为您完成这个任务。下面是函数的代码实现:
```
void statOfStr (char str[]) {
int upper = 0, lower = 0, digit = 0, space = 0, other = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isupper(str[i]))
upper++;
else if (islower(str[i]))
lower++;
else if (isdigit(str[i]))
digit++;
else if (isspace(str[i]))
space++;
else
other++;
}
printf("大写字母:%d\n小写字母:%d\n数字字符:%d\n空格:%d\n其它字符:%d\n", upper, lower, digit, space, other);
}
```
您可以将这段代码复制到您的程序中使用。希望能对您有所帮助!如果您还有其它问题,请随时问我。
相关问题
编写函数void count(char *str,int *a)统计字符串str中大写字母、小写字母、空格、数字以及其他字符的个数,统计的结果保存到数组a中。在main函数中调用该函数。
题目要求编写一个函数,函数名为count,参数为一个指向字符数组的指针和一个指向整型数组的指针。函数的作用是统计字符串中大写字母、小写字母、空格、数字以及其他字符的个数,并将统计结果保存到整型数组中。在主函数中调用该函数。
函数的实现可以采用循环遍历字符串的方式,对每个字符进行判断,根据字符的ASCII码值来判断其属于哪一类字符,然后将对应的计数器加1。最后将计数器的值存入整型数组中即可。
函数的代码如下:
void count(char *str, int *a)
{
int i;
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
a[0]++;
else if (str[i] >= 'a' && str[i] <= 'z')
a[1]++;
else if (str[i] == ' ')
a[2]++;
else if (str[i] >= '0' && str[i] <= '9')
a[3]++;
else
a[4]++;
}
}
在主函数中调用该函数的代码如下:
int main()
{
char str[100];
int a[5] = {0};
printf("请输入字符串:");
gets(str);
count(str, a);
printf("大写字母:%d\n", a[0]);
printf("小写字母:%d\n", a[1]);
printf("空格:%d\n", a[2]);
printf("数字:%d\n", a[3]);
printf("其他字符:%d\n", a[4]);
return 0;
}
(1)编写函数void count(char *str,int *a)统计字符串str中大写字母、小写字母、空格、数字以及其他字符的个数,统计的结果保存到数组a中。在main函数中调用该函数。
这个问题是要求我们写一个函数 void count(char *str, int *a),用来统计字符串 str 中大写字母、小写字母、空格、数字以及其他字符的个数,并将结果存储到整型数组 a 中。在主函数中调用该函数。
阅读全文