如何使用C语言的二维数组结构来接收并计算n行字符串中各包含的数字个数,同时保证每个数字计数值独立显示在一行为?
时间: 2024-11-13 18:20:49 浏览: 8
在C语言中,你可以使用二维字符数组来存储字符串,并通过遍历每一行来计算其中包含的数字个数。以下是一个简单的步骤:
1. 定义一个适当的二维字符数组 `char array[n][m]`,其中 `n` 表示行数,`m` 表示每行的最大长度,假设字符串中的所有数字都在一个整数范围内。
```c
#define MAX_LINES 5 // 最大行数
#define MAX_CHAR_PER_LINE 10 // 每行最大字符数
char array[MAX_LINES][MAX_CHAR_PER_LINE];
```
2. 使用循环读取输入的字符串到二维数组中,可以结合 `fgets()` 函数逐行获取用户输入:
```c
for (int i = 0; i < n; i++) {
fgets(array[i], MAX_CHAR_PER_LINE, stdin);
}
```
注意要处理换行符 `\n` 和多余的空格。
3. 遍历二维数组中的每个元素,检查是否为数字,可以使用 `isdigit()` 函数从 `<ctype.h>` 库判断:
```c
#include <ctype.h>
int count_per_line = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; array[i][j]; j++) { // 遍历到字符串结束
if (isdigit(array[i][j])) {
count_per_line++;
}
}
printf("Line %d contains %d number(s).\n", i + 1, count_per_line); // 输出当前行的数字个数
count_per_line = 0; // 清零准备下一行计数
}
```
4. 结束程序前别忘了关闭标准输入流,如使用 `fclose(stdin)`。
阅读全文