有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
。
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define N 15 //scanf碰到缓冲区里面的空字符(空格,tab,回车,换行就会截断并添加\0),而gets是要等回车才截断字符串并添加\0的 int main(void) { int upp = 0, low = 0, digit = 0, space = 0, other = 0;//大写字母 小写字母 数字 空格 其他字符 char text[3][80];
for (int i = 0; i < 3; i++) { // 获取一行文本 printf("请输入第%d行文字:\n", i + 1); gets(text[i]);//一行一行输入 一行一统计
for (int j = 0; j < 80 && text[i][j] != '\0'; j++)//80个以内 或到行尾 { if (text[i][j] >= 'A' && text[i][j] <= 'Z') // 大写字母 upp++; else if (text[i][j] >= 'a' && text[i][j] <= 'z') // 小写字母 low++; else if (text[i][j] >= '0' && text[i][j] <= '9') // 数字 digit++; else if (text[i][j] == ' ') // 控制 space++; else other++; // 其他字符 } }
printf("\n大写字母数: %d\n", upp); printf("小写字母数: %d\n", low); printf("数字个数 : %d\n", digit); printf("空格个数 : %d\n", space); printf("其他字符个数 : %d\n", other); return 0; }
【答案解析】
获取文章中的3...
用户登录可进行刷题及查看答案
获取文章中的3行文本,并对每行文本进行以下操作
定义保存结果变量:upp、low、digit、space、other 遍历每行文本中的字符 如果该字符ch:ch >= ‘a’ && ch <=‘z’,则该字符是小写字母,给low++ 如果该字符ch:ch >= ‘A’ && ch <=‘Z’,则该字符是小写字母,给up++ 如果该字符ch:ch >= ‘0’ && ch <=‘9’,则该字符是小写字母,给digit++ 如果该字符ch:ch == ’ ',则该字符是小写字母,给space++ 否则为其他字符,给other++ 输入统计结果
#include <stdio.h> int main() { int upp = 0, low = 0, digit = 0, space = 0, other = 0; char text[3][80]; for (int i=0; i<3; i++) { // 获取一行文本 printf("please input line %d:\n",i+1); gets(text[i]); // 统计该行文本中小写字母、大写字母、数字、空格、其他字符的个数 for (int j=0; j<80 && text[i][j]!='\0'; j++) { if (text[i][j]>='A'&& text[i][j]<='Z') // 大写字母 upp++; else if (text[i][j]>='a' && text[i][j]<='z') // 小写字母 low++; else if (text[i][j]>='0' && text[i][j]<='9') // 数字 digit++; else if (text[i][j]==' ') // 控制 space++; else other++; // 其他字符 } } printf("\nupper case: %d\n", upp); printf("lower case: %d\n", low); printf("digit : %d\n", digit); printf("space : %d\n", space); printf("other : %d\n", other); return 0; }
登录后提交答案