编程实现从键盘随机的输入一串字符(不超过100个),统计出其中英文字母、数字和其它字符的个数并输出
#include <stdio.h>
int main(){
int letters=0,numbers=0,emptys=0,others=0;
char c;
printf("输入一些字母\n");
while((c=getchar())!='\n'){
if((c>='a' && c <= 'z') || (c >='A' && c <='Z') ){
letters++;
}else if( c >= '0' && c <='9'){
numbers++;
}else if(c==' '){
emptys++;
}else{
others++;
}
}
printf("字母=%d,数字=%d,空格=%d,其他=%d\n",letters,numbers,emptys,others);
}
遍历输入的字符串中的每个字符,使用isalpha函数判断是否是字母,使用isdigit函数判断是否是数字,如果不是字母也不是数字,则认为是其他字符。示例代码如下:
#include <stdio.h>
#include <ctype.h>
int main() {
char str[101];
int letterCount = 0, digitCount = 0, otherCount = 0;
printf("输入一串字符(不超过100个):");
fgets(str, 101, stdin);
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) {
letterCount++;
} else if (isdigit(str[i])) {
digitCount++;
} else {
otherCount++;
}
}
printf("字母数:%d\n", letterCount);
printf("数字数:%d\n", digitCount);
printf("其它字符数:%d\n", otherCount);
return 0;
}
供参考:
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[128];
int i = 0, letter = 0, num = 0, other = 0;
gets(str);
while (str[i]) {
if (isalpha(str[i])) letter++;
else if (isdigit(str[i])) num++;
else other++;
i++;
}
printf("Letter:%d ,Num:%d ,Other:%d", letter, num, other);
return 0;
}