任务描述: 输入一行英文句子(不超过100个字符),输出这个句子中的英文字母(Letter)、数字(Digit)和其它字符(Symbol)(空格标点符号等)的个数。 输入样例: ABCDEF12345,.A:1<5== 输出样例: Letter:7 Digit :7 Symbol:6 注意每行最后没有空格,写一个C语言程序
时间: 2023-06-17 22:01:56 浏览: 816
下面是一个简单的 C 语言程序实现:
```c
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[101];
int letter = 0, digit = 0, symbol = 0;
fgets(str, 101, stdin); // 从标准输入读入一行字符串
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) {
letter++;
} else if (isdigit(str[i])) {
digit++;
} else {
symbol++;
}
}
printf("Letter:%d Digit:%d Symbol:%d\n", letter, digit, symbol);
return 0;
}
```
程序中用到了 `ctype.h` 库中的 `isalpha()` 和 `isdigit()` 函数来判断字符类型,用一个循环遍历字符串中的每个字符,统计字母、数字和符号的个数,最后输出结果。
相关问题
输入一行英文句子(不超过100个字符),输出这个句子中的英文字母(Letter)、数字(Digit)和其它字符(Symbol)(空格标点符号等)的个数 c语言指针实现
下面是使用指针实现的代码:
```c
#include <stdio.h>
int main() {
char str[100];
char *p;
int letter_count = 0, digit_count = 0, symbol_count = 0;
printf("请输入一个英文句子:");
fgets(str, 100, stdin); // 从标准输入流中读取一行字符串
p = str;
while (*p != '\0') {
if ((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z')) { // 如果当前字符是英文字母
letter_count++;
} else if (*p >= '0' && *p <= '9') { // 如果当前字符是数字
digit_count++;
} else { // 其它字符
symbol_count++;
}
p++;
}
printf("英文字母个数为%d\n", letter_count);
printf("数字个数为%d\n", digit_count);
printf("其它字符个数为%d\n", symbol_count);
return 0;
}
```
解释一下代码的实现:
1. 使用`fgets`函数从标准输入流中读取一行字符串,存储在`str`数组中;
2. 定义指向字符串的指针`p`,初始指向字符串的第一个字符;
3. 使用循环遍历每个字符,如果当前字符是英文字母,则英文字母计数器加1;如果当前字符是数字,则数字计数器加1;否则其它字符计数器加1;
4. 指针`p`后移,指向下一个字符;
5. 输出英文字母个数、数字个数和其它字符个数。
注意:代码中使用了`fgets`函数读取输入,而不是`scanf`函数,是因为`scanf`函数在读取字符串时会停止在空格处,无法读取一整行字符串。
C加加循环结构输入一行字符不超过200个分别统计其中英文字母空格数字其他字符的个数
以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
char str[201]; // 存储输入的字符串
int letter = 0, space = 0, digit = 0, other = 0; // 统计各类字符的个数
cout << "请输入一行字符(不超过200个):" << endl;
cin.getline(str, 201); // 读取一行字符串
// 循环遍历字符串中的每个字符
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断是否为字母
letter++;
} else if (isspace(str[i])) { // 判断是否为空格
space++;
} else if (isdigit(str[i])) { // 判断是否为数字
digit++;
} else { // 其他字符
other++;
}
}
// 输出结果
cout << "英文字母个数:" << letter << endl;
cout << "空格个数:" << space << endl;
cout << "数字个数:" << digit << endl;
cout << "其他字符个数:" << other << endl;
return 0;
}
```
说明:
- 使用 `cin.getline()` 函数读取一行字符串,存储到字符数组 `str` 中;
- 循环遍历字符数组 `str` 中的每个字符,使用 `isalpha()`、`isspace()`、`isdigit()` 函数判断字符类型;
- 使用计数器变量 `letter`、`space`、`digit`、`other` 统计各类字符的个数;
- 输出结果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)