C++ 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
时间: 2023-11-25 21:02:49 浏览: 31
好的,我来回答你的问题。这个问题可以通过循环读入每个字符,判断它属于哪种类型来实现。具体实现代码如下:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char ch;
int letter_cnt = 0, space_cnt = 0, digit_cnt = 0, other_cnt = 0;
printf("请输入一行字符:\n");
while ((ch = getchar()) != '\n') {
if (isalpha(ch))
letter_cnt++;
else if (isspace(ch))
space_cnt++;
else if (isdigit(ch))
digit_cnt++;
else
other_cnt++;
}
printf("其中有英文字母%d个,空格%d个,数字%d个,其他字符%d个。\n", letter_cnt, space_cnt, digit_cnt, other_cnt);
return 0;
}
```
这个程序会先输出提示信息,然后使用 `getchar` 来逐个读入输入的字符,并使用 if 语句来判断它的类型,最后输出统计结果。
希望我的解答能对你有所帮助!
相关问题
C++输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
C++输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数可以使用getchar()函数逐个读取字符,并根据字符的ASCII码值判断其属于哪一类。具体实现可以参考以下代码:
```
#include <iostream>
using namespace std;
int main() {
char c;
int letter = 0, space = 0, number = 0, other = 0;
cout << "请输入一行字符:" << endl;
while ((c = getchar()) && (c != '\n')) {
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
letter++;
else if (c == ' ')
space++;
else if (c >= '0' && c <= '9')
number++;
else
other++;
}
cout << "英文字母个数为:" << letter << endl;
cout << "空格个数为:" << space << endl;
cout << "数字个数为:" << number << endl;
cout << "其他字符个数为:" << other << endl;
return 0;
}
```
c++输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
以下是C++统计输入字符串中各种字符个数的代码:
```c++
#include <iostream>
using namespace std;
int main()
{
char str[100];
int letter = 0, space = 0, digit = 0, other = 0;
cout << "请输入一行字符:" << endl;
cin.getline(str, 100); // 输入一行字符
for (int i = 0; str[i] != '\0'; i++) // 遍历字符串
{
if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) // 判断是否为字母
letter++;
else if (str[i] == ' ') // 判断是否为空格
space++;
else if (str[i] >= '0' && str[i] <= '9') // 判断是否为数字
digit++;
else // 其他字符
other++;
}
cout << "字母个数:" << letter << endl;
cout << "空格个数:" << space << endl;
cout << "数字个数:" << digit << endl;
cout << "其他字符个数:" << other << endl;
return 0;
}
```