输入一个正整数 n ,再输入 n 个字符,分别统计出其中回车、数字字符和其他字符的个数。要求使用 switch 语句编写。
时间: 2023-03-16 14:44:10 浏览: 228
根据你提供的信息,可以使用如下代码编写:int enterNum = 0;
int digitNum = 0;
int otherNum = 0;
for(int i=0;i<n;i++){
char c = getchar();
switch(c){
case '\n':
enterNum++;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
digitNum++;
break;
default:
otherNum++;
break;
}
}
printf("回车字符的个数:%d\n",enterNum);
printf("数字字符的个数:%d\n",digitNum);
printf("其他字符的个数:%d\n",otherNum);
相关问题
题目2, 1)题目内容;输入一个正整数 n ,再输入 n 个字符,统计其中英文字母、空格或回车、数字 字符和其他字符的个数。试编写相应程序。 c语言
题目2要求你编写一个C语言程序,其功能是对用户输入的一个正整数n进行处理,然后读取n个字符,并统计在这n个字符中分别有多少个英文字母、空格、回车符、数字字符以及其他特殊字符。你可以采用如下的步骤来实现这个程序:
1. **包括头文件**:首先,你需要包含`stdio.h`用于标准输入输出和`ctype.h`用于字符分类。
2. **函数声明**:定义一个主函数`main()`,并创建一个辅助函数`countChars(char c)`,该函数接收一个字符作为输入,返回一个整数表示该字符类型的计数值。
3. **获取输入**:使用`scanf()`函数获取正整数n,之后用循环`for(int i = 0; i < n; i++)`读入每个字符。
4. **字符分类**:在循环内部,判断字符的类型,可以借助`isdigit()`, `isspace()`, 和`isalpha()`函数分别检查字符是否为数字、空格或字母。其他特殊字符可以用`!isdigit(c) && !isspace(c) && !isalpha(c)`来确定。
5. **累加计数**:针对每种类型的字符,调用`countChars(c)`并根据返回值更新相应的计数器。
6. **输出结果**:循环结束后,打印出各类字符的数量。
以下是简单的示例代码结构:
```c
#include <stdio.h>
#include <ctype.h>
int countChars(char c) {
if (isdigit(c)) return 1;
else if (isspace(c)) return 2;
else if (isalpha(c)) return 3;
else return 4; // 其他字符
}
int main() {
int n, alpha_count = 0, space_count = 0, digit_count = 0, other_count = 0;
printf("Enter a positive integer: ");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
char input_char;
scanf(" %c", &input_char); // 使用" %c"来忽略多余的空白字符
switch (countChars(input_char)) {
case 1: digit_count++; break;
case 2: space_count++; break;
case 3: alpha_count++; break;
default: other_count++; break;
}
}
printf("Number of alphabets: %d\n", alpha_count);
printf("Number of spaces: %d\n", space_count);
printf("Number of digits: %d\n", digit_count);
printf("Number of other characters: %d\n", other_count);
return 0;
}
```
c语言本题要求编写程序,输入N个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。并且输入在第一行中给出正整数N,第二行输入N个字符,最后一个回车表示输入结束,不算在内。
这是一道关于C语言编程的问题。你可以使用一个循环来逐个读入字符,然后使用判断条件来确定每个字符属于哪一类。最后,输出各个字符类别的个数。例如:
```
#include <stdio.h>
int main()
{
int n, i;
char ch;
int letter = 0, space = 0, digit = 0, others = 0;
scanf("%d\n", &n);
for(i=0; i<n; i++)
{
scanf("%c", &ch);
if(ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z')
letter++;
else if(ch == ' ' || ch == '\n')
space++;
else if(ch >= '0' && ch <= '9')
digit++;
else
others++;
}
printf("letter=%d, space=%d, digit=%d, others=%d\n", letter, space, digit, others);
return 0;
}
```
当然,你也可以使用switch语句来实现相同的功能。
阅读全文