用c语言完成:从键盘读入一个小写字母和一个字符串,统计该字母在字符串中出现的次数,如果统计过程中遇到数字则中止统计并给出提示“有数字混入到数组中”,如果没找到该字母,则提示“没有这个字母”。
时间: 2023-05-23 18:06:42 浏览: 43
```c
#include <stdio.h>
int main() {
char c;
char str[100];
int count = 0;
scanf("%c%s", &c, str); // 从键盘读入小写字母和字符串
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 如果遇到数字,中止统计并提示
printf("有数字混入到字符串中\n");
return 0;
}
if (str[i] == c) { // 如果找到该字母,计数器加1
count++;
}
}
if (count == 0) { // 没找到该字母,给出提示
printf("没有这个字母\n");
} else { // 找到了该字母,输出计数器的值
printf("该字母在字符串中出现了%d次\n", count);
}
return 0;
}
```
相关问题
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` 的长度,就会导致程序异常。因此,在实际应用中需要对输入字符串的长度进行检查和处理。
用c语言编写,从键盘输入一个字符串,统计按a到z各个字母的出现字数
OK,请输入代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // 假设字符串长度不超过100
int len, count[26] = {0}; // count数组存放按a到z的字母出现次数
printf("请输入一个字符串:\n");
fgets(str, sizeof(str), stdin); // 从键盘读入字符串
len = strlen(str); // 获取字符串长度
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') { // 判断字符是否为小写字母
count[str[i] - 'a']++; // 字符出现次数加一
}
}
// 输出a到z各字母出现次数
for (int i = 0; i < 26; i++) {
printf("%c:%d\n", 'a' + i, count[i]);
}
return 0;
}
```
如果你想使用更好的观感,可以在个别系统上使用:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100]; // 假设字符串长度不超过100
int len, count[26] = {0}; // count数组存放按a到z的字母出现次数
printf("请输入一个字符串:\n");
fgets(str, sizeof(str), stdin); // 从键盘读入字符串
len = strlen(str); // 获取字符串长度
for (int i = 0; i < len; i++) {
if (str[i] >= 'a' && str[i] <= 'z') { // 判断字符是否为小写字母
count[str[i] - 'a']++; // 字符出现次数加一
}
}
// 打印表头
printf("+-----+-----+\n");
printf("|%-5s|%-5s|\n", "字母", "出现次数");
printf("+-----+-----+\n");
// 输出a到z各字母出现次数
for (int i = 0; i < 26; i++) {
printf("|%-5c|%-5d|\n", 'a' + i, count[i]);
printf("+-----+-----+\n");
}
return 0;
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)