输人一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
#include <bits/stdc++.h> using namespace std; int main() { vector<char> arr; char c; // 读取所有字符(包括空格,直到换行符) while ((c = cin.get()) != '\n') { arr.push_back(c); } int zm = 0; int kg = 0; int sz = 0; int qt = 0; for(int i = 0; i < arr.size();i++){ if((arr[i] >= 'a'&& arr[i] <= 'z')||(arr[i] >= 'A'&& arr[i] <= 'Z')){ zm++; }else if(arr[i] == ' '){ kg++; } else if(arr[i] >= '0'&& arr[i] <= '9'){ sz++; }else{ qt++; } } cout << zm << " " << kg << " " << sz << " " << qt ; }
#include<stdio.h> #include<string.h> int main(){ char str[1000],ch; int a=0,s=0,n=0,o=0; scanf("%s",str); for(int i=0;i<1000;i++) { ch=str[i]; if(ch=='\0') { break; } if(ch==' ') { s++; } else if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') { a++; } else if(ch>='0'&&ch<='9') { n++; } else { o++; } } printf("英文字母、空格、数字和其他字符的个数:%d %d %d %d", a, s, n, o); return 0; }
1
int main() { //输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数 char str[1000], ch; int a = 0, s = 0, n = 0, o = 0; scanf("%s", str); for (int i = 0; i < 1000; i++) { ch = str[i]; if (ch == '\0') { break; } if (ch == ' ') { s++; } else if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z') { a++; } else if (ch >= '0' && ch <= '9') { n++; } else { o++; } } printf("英文字母、空格、数字和其他字符的个数:%d %d %d %d", a, s, n, o); }
。
答案解析: 该题可以调用getc...
用户登录可进行刷题及查看答案
答案解析: 该题可以调用getchar函数,从stdin流中读入一个字符,当输入多个字符时,getchar()再执行时就会直接从缓冲区中读取了。等同于getc(stdin)。所以,我们循环调用getchar,直到将标准输入的内容读到换行符\n为止。同时判断,读取到的字符是英文字母、空格、数字或者其他字符,并计数;
#include <stdio.h> int main() { char c; //定义eng_char为英文字母的个数,初始值为0 //定义space_char为空格字符的个数,初始值为0 //定义digit_char为数字字符的个数,初始值为0 //定义other_char为其他字符的个数,初始值为0 int eng_char = 0, space_char = 0, digit_char = 0, other_char = 0; printf("请输入一行字符:"); while ((c = getchar()) != '\n') { if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') { eng_char++; } else if (c == ' ') { space_char++; } else if (c >= '0' && c <= '9') { digit_char++; } else { other_char++; } } printf("英文字母数量:%d\n空格数量:%d\n数字数量:%d\n其他字符数量:%d\n", eng_char, space_char, digit_char, other_char); return 0; }
登录后提交答案