使用c语言 从键盘输入一个字符串,统计字符串中小写字母的个数,要求统计小写字母的个数用自定义函数实现。 完成小写字母字符统计的自定义函数 int fact(char str[])的设计,提交代码时连同主函数一同提交。 主函数如下 #include<stdio.h> main() { int res; char s[50]; gets(s); res=fact(s); printf("%d",res); } 输入格式: 输入一个字符串(长度不超过50个字符) 输出格式: 以整型格式输出结果 输入样例: Hello World! 输出样例: 8
时间: 2023-06-18 08:04:06 浏览: 110
以下是代码实现:
```
#include <stdio.h>
int fact(char str[]) {
int count = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'a' && str[i] <= 'z') {
count++;
}
}
return count;
}
int main() {
int res;
char s[50];
gets(s);
res = fact(s);
printf("%d", res);
return 0;
}
```
函数 `fact` 的作用是统计传入的字符串中小写字母的个数。在循环中,遍历字符串的每一个字符,如果该字符是小写字母,则计数器 `count` 加 1。最后返回计数器的值。
在主函数中,首先输入字符串,然后调用 `fact` 函数统计小写字母的个数并赋值给变量 `res`,最后以整型格式输出结果。
相关问题
用C语言写键盘输入一个字符串,统计其中的大写字母、小写字母、数字字母、其他字符的个数
以下是用C语言实现键盘输入一个字符串,统计其中的大写字母、小写字母、数字字母、其他字符的个数的代码:
```c
#include <stdio.h>
int main() {
char str[100];
int i, upper = 0, lower = 0, digit = 0, other = 0;
printf("请输入一个字符串:");
gets(str);
for (i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
upper++;
} else if (str[i] >= 'a' && str[i] <= 'z') {
lower++;
} else if (str[i] >= '0' && str[i] <= '9') {
digit++;
} else {
other++;
}
}
printf("大写字母个数:%d\n", upper);
printf("小写字母个数:%d\n", lower);
printf("数字个数:%d\n", digit);
printf("其他字符个数:%d\n", other);
return 0;
}
```
首先定义了一个字符数组 `str` 来存储输入的字符串,以及四个整型变量 `upper`、`lower`、`digit`、`other` 来分别统计大写字母、小写字母、数字和其他字符的个数。
然后通过 `gets` 函数获取用户输入的字符串。注意:`gets` 函数不会判断输入的字符串长度,可能会导致缓冲区溢出,因此在实际使用中需要使用更安全的字符串输入函数,比如 `fgets`。
接着使用 `for` 循环遍历字符串中的每个字符,并根据 ASCII 码判断该字符是大写字母、小写字母、数字还是其他字符,并分别对 `upper`、`lower`、`digit`、`other` 变量进行累加。
最后输出各个字符类型的个数即可。
c语言从键盘读入一个字符串(包括空格),然后统计该字符串的数字、大写字母、小写字母以及空格字符的个数。
下面是一个简单的C语言程序,可以实现从键盘读入一个字符串,然后统计该字符串的数字、大写字母、小写字母以及空格字符的个数。
```
#include <stdio.h>
#include <ctype.h>
int main() {
char str[100];
int i, digits = 0, uppercase = 0, lowercase = 0, spaces = 0;
printf("请输入一个字符串:");
gets(str);
for(i = 0; str[i] != '\0'; i++) {
if(isdigit(str[i])) {
digits++;
} else if(isupper(str[i])) {
uppercase++;
} else if(islower(str[i])) {
lowercase++;
} else if(isspace(str[i])) {
spaces++;
}
}
printf("数字个数:%d\n", digits);
printf("大写字母个数:%d\n", uppercase);
printf("小写字母个数:%d\n", lowercase);
printf("空格字符个数:%d\n", spaces);
return 0;
}
```
这个程序中,我们首先定义了一个字符数组 `str`,用于存储从键盘读入的字符串。然后定义了四个变量 `digits`, `uppercase`, `lowercase` 和 `spaces`,分别用于统计字符串中的数字、大写字母、小写字母以及空格字符的个数,初始值都为0。
接下来,我们使用 `gets()` 函数从键盘读入字符串,并将其存储到字符数组 `str` 中。然后使用 `for` 循环遍历字符串中的每个字符,对于每个字符,我们使用 `isdigit()`、`isupper()`、`islower()`、`isspace()` 函数判断其是否为数字、大写字母、小写字母或空格字符,如果是,则对应的变量加1。
最后,输出统计结果即可。
需要注意的是,`gets()` 函数不安全,容易导致缓冲区溢出,建议使用更安全的替代函数 `fgets()`。另外,本程序中没有对输入字符串的长度进行检查,如果输入的字符串长度超过了字符数组 `str` 的长度,就会导致程序异常。因此,在实际应用中需要对输入字符串的长度进行检查和处理。