使用c语言写输入多行字符串统计字母和数字的代码
时间: 2024-12-22 09:33:06 浏览: 69
当你想用 C 语言编写一个程序来统计输入多行字符串中的字母和数字时,你可以创建一个简单的循环结构,遍历每一行输入,并分别计数。下面是一个基本示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含用于判断字符类型的函数
int main() {
int letter_count = 0;
int digit_count = 0;
char input;
while ((input = getchar()) != EOF) { // 循环读取直到文件结束标志 EOF
if (isalpha(input)) { // 如果是字母
letter_count++;
} else if (isdigit(input)) { // 如果是数字
digit_count++;
}
}
printf("字母总数: %d\n", letter_count);
printf("数字总数: %d\n", digit_count);
return 0;
}
```
这个程序会逐个读取用户输入的字符,如果是字母就增加`letter_count`,如果是数字就增加`digit_count`。注意 `getchar()` 函数用于从标准输入流中获取字符。
相关问题
如何用C语言编写程序实现多行字符串的输入并进行大小写转换?
在C语言中,你可以使用`fgets`函数来读取多行字符串,然后通过数组或其他数据结构存储。对于大小写转换,可以遍历每个字符,利用ASCII码表将大写字母转为小写,或将小写字母转为大写。下面是一个简单的示例:
```c
#include <stdio.h>
#include <ctype.h> // 包含大小写转换相关的库函数
#define MAX_LINES 10 // 定义最多允许的行数
#define MAX_LINE_LENGTH 50 // 每行的最大长度
void toLowerCase(char str[]) {
int i;
for (i = 0; str[i] != '\0'; i++) {
if (isupper(str[i])) { // 如果是大写字母
str[i] = tolower(str[i]); // 转换为小写
}
}
}
int main() {
char lines[MAX_LINES][MAX_LINE_LENGTH]; // 存储多行字符串
int lineCount = 0;
while (lineCount < MAX_LINES) {
printf("请输入一行文字(按回车结束): ");
fgets(lines[lineCount], sizeof(lines[0]), stdin); // 读取一行
lines[lineCount][strcspn(lines[lineCount], "\n")] = '\0'; // 去掉换行符
toLowerCase(lines[lineCount]); // 进行大小写转换
lineCount++;
}
printf("\n转换后的字符串:\n");
for (int i = 0; i < lineCount; i++) {
printf("%s\n", lines[i]);
}
return 0;
}
```
在这个例子中,我们首先定义了用于存储多行字符串的二维数组,并使用`while`循环获取用户输入直到达到最大行数。接着,`toLowerCase`函数会遍历数组中的每个字符,如果是大写字母则将其转换为小写。
C语言】分类统计字符个数(多行输入字符串)
在C语言中,你可以使用数组、计数器和循环结构来实现一个多行输入字符串的字符分类统计。这里是一个基本的示例,用于统计字母、数字和特殊字符的数量:
```c
#include <stdio.h>
#include <ctype.h> // 包含ctype.h库,用于处理字符类别
int main() {
char input[100][50]; // 多行输入,每行最多49个字符加换行符
int line_count = 0;
printf("请输入多行字符串(按Ctrl+D结束输入):\n");
fgets(input[line_count], sizeof(input[line_count]), stdin);
while (fgets(input[line_count], sizeof(input[line_count]), stdin)) { // 循环读取直到文件结尾
line_count++; // 每次读入一行,计数器增加
for (int i = 0; i < strlen(input[line_count] - 1); i++) { // 避免统计换行符
if (isalpha(input[line_count][i])) { // 如果是字母
// 字符分类统计,例如:
// counter_letters++;
printf("字母: ");
} else if (isdigit(input[line_count][i])) { // 如果是数字
// counter_digits++;
printf("数字: ");
} else { // 其他非字母和数字字符
// counter_special++;
printf("特殊字符: ");
}
}
printf("\n");
}
printf("总结结果:\n");
printf("字母总数: ??\n");
printf("数字总数: ??\n");
printf("特殊字符总数: ??\n");
return 0;
}
```
在这个示例中,你需要手动填写`counter_letters`、`counter_digits` 和 `counter_special` 的实际计算,并在适当的位置输出统计结果。注意,这个程序假设用户会正确地终止输入(通常通过按下Ctrl+D)。如果你需要完整地实现这些计数器,可以在每次遇到特定类型的字符时累加对应的计数。
阅读全文
相关推荐














