编写层程序将m行n列的二维数组中的字符数据按列的顺序依次放到一个字符串(一维数组)中
时间: 2024-02-06 08:11:23 浏览: 67
以下是一个实现该功能的 C 语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
int main() {
char arr[MAX_SIZE][MAX_SIZE];
int m, n, i, j, index = 0;
char *str;
printf("Enter the number of rows: ");
scanf("%d", &m);
printf("Enter the number of columns: ");
scanf("%d", &n);
// allocate memory for the string
str = (char *) malloc(m * n * sizeof(char));
// read the input array
printf("Enter the elements of the array:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf(" %c", &arr[i][j]);
}
}
// copy the elements column-wise to the string
for (j = 0; j < n; j++) {
for (i = 0; i < m; i++) {
str[index++] = arr[i][j];
}
}
str[index] = '\0'; // add null terminator to the string
// print the resulting string
printf("The resulting string is: %s\n", str);
// free memory
free(str);
return 0;
}
```
该代码首先读取一个 m 行 n 列的二维字符数组,然后将其中的元素按列的顺序复制到一个一维字符数组中,最后输出该一维数组。注意,这里使用了动态内存分配来分配字符串所需的内存,需要使用 `malloc` 函数进行分配,并在使用完毕后使用 `free` 函数进行释放。
阅读全文