输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数【while循环】

/*
cj1.c
*/
#include <stdio.h>
main()
{
int i=0, space=0, num=0, n=0, ch=0;
    char s[1000000];
    printf("请输入一串字符 ");
    gets(s);//得到一串字符
    while(s[i] != '\0')//没有到字符的末尾
{
if(s[i]==' ')
        space++;//计算空格的总数
        else if(s[i]<='9' && s[i]>='0')
        num++;//计算数字的总数
        else if(s[i]<='z' && s[i]>='a' || s[i]<='Z' && s[i]>='A')
        ch++;//计算字母的总数
        else
        n++;//计算其他字符的总数
        i++;//计算字符的变量
}
    printf("刚才输入的字符中英文字符个数为 %d\n", ch);
    printf("刚才输入的字符中空格个数为 %d\n", space);
    printf("刚才输入的字符中数字个数为 %d\n", num);
    printf("刚才输入的字符中其他个数为 %d\n", n);

    while(1);

}

}

总结:运用了while循环,对一串字符中的数字,字母等字符进行统计。


### 回答1: 这道题目需要编写一个程序,输入一行字符,然后统计其中的英文字母空格数字其他字符个数。 具体的实现方法可以使用循环遍历输入字符串,然后根据字符的 ASCII 码值来判断它是英文字母空格数字还是其他字符,最后累加计数器即可。 例如,可以定义四个变量分别表示英文字母空格数字其他字符个数,然后使用 for 循环遍历输入字符串,对于每个字符使用 if-else 语句判断它属于哪一类,然后对应的计数器加一即可。 最后输四个计数器的值即可得到统计结果。 ### 回答2: 在计算机编程中,统计一个字符串中的各类字符数量是一个常见的问题。为了解决这个问题,我们先需要将输入一行字符转换为一个字符串,然后遍历字符串的每一个字符,判断该字符英文字母空格数字还是其他字符,并统计它们的数量。 下面是具体代码实现: ```python # 输入一行字符,保存到字符串中 s = input("请输入一行字符:") # 初始化英文字符空格数字其他字符个数为0 letters = 0 spaces = 0 digits = 0 others = 0 # 遍历字符串的每一个字符,并统计它们的数量 for c in s: if c.isalpha(): # 如果是英文字母 letters += 1 elif c.isspace(): # 如果是空格 spaces += 1 elif c.isdigit(): # 如果是数字 digits += 1 else: # 如果是其他字符 others += 1 # 输统计结果 print("字符串中英文字母个数为:", letters) print("字符串中空格个数为:", spaces) print("字符串中数字个数为:", digits) print("字符串中其他字符个数为:", others) ``` 上面的代码首先利用`input()`函数从控制台读取输入一行字符,并保存到字符串`s`中。然后,我们定义`letters`、`spaces`、`digits`、`others`这四个变量分别表示英文字母空格数字、其他字符个数,将它们初始化为0。 接下来,我们通过`for`循环遍历`s`中的每一个字符`c`,并判断该字符属于哪一类。如果`c`是英文字母,则`letters`自增1;如果`c`是空格,则`spaces`自增1;如果`c`是数字,则`digits`自增1;如果`c`不属于以上三类,则`others`自增1。 最后,我们输变量`letters`、`spaces`、`digits`、`others`的值,即统计结果。 通过这个简单的代码实现,我们可以统计一个字符串中英文字母空格数字以及其他字符个数。 ### 回答3: 这道题目可以通过遍历输入字符串的每一个字符,然后判断它是属于哪一种字符类型,从而分别统计英文字母空格数字其他字符个数。 在程序中,可以定义四个计数变量来记录每一种字符类型的个数,然后使用 for 循环来遍历输入字符串。在遍历的过程中,使用字符的 ASCII 码来判断它属于哪一种字符类型。具体来说,可以参考下面的代码: ``` #include <iostream> using namespace std; int main() { string input; cout << "请输入一行字符:"; getline(cin, input); int letters = 0, spaces = 0, digits = 0, others = 0; for (int i = 0; i < input.length(); i++) { if ((input[i] >= 'a' && input[i] <= 'z') || (input[i] >= 'A' && input[i] <= 'Z')) { letters++; } else if (input[i] == ' ') { spaces++; } else if (input[i] >= '0' && input[i] <= '9') { digits++; } else { others++; } } cout << "英文字母个数:" << letters << endl; cout << "空格个数:" << spaces << endl; cout << "数字个数:" << digits << endl; cout << "其他字符个数:" << others << endl; return 0; } ``` 使用 getline 函数获取输入字符串,然后使用 for 循环遍历它的每一个字符。在循环中,使用 if/else 分支语句判断当前字符属于哪一种字符类型,并将对应的计数器加 1。最后输每一种字符类型的个数即可。 这里需要注意,如果输入字符串中包含汉字等非 ASCII 码字符,它们会被当做其他字符处理。如果需要支持多种字符编码,可以考虑使用 Unicode 字符集来进行判断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值