C语言中怎么把输入忽略空格读入二维数组
时间: 2024-12-16 17:32:48 浏览: 8
实验七 二维数组
在C语言中,直接从标准输入流(stdin)读取二维字符数组并跳过空格可能会比较复杂,因为`scanf()`函数默认会处理空白字符。如果你想要按照字典序读取字符,同时忽略空格,可以先创建一个临时变量存储非空格字符,然后手动添加到二维数组内。这里是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 5
void read_2d_array(char arr[][COLS], int rows) {
char temp; // 存储当前字符
for (int i = 0; i < rows; i++) { // 行循环
for (int j = 0; j < COLS; j++) { // 列循环
// 读取并跳过空格
while ((temp = getchar()) == ' ' || temp == '\t');
// 如果读取到非空格字符,开始复制
if (temp != '\n') {
arr[i][j] = temp;
// 避免越界
while (getchar() != '\n' && getchar() != EOF) {}
}
}
}
}
int main() {
char array[ROWS][COLS];
read_2d_array(array, ROWS);
// 打印数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%c", array[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个示例中,我们使用了`getchar()`函数读取字符,并通过`while`循环跳过所有空格。当遇到非空格字符或换行符时,将字符存储到二维数组的对应位置。
阅读全文