请用C语言编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中
时间: 2023-11-18 22:06:40 浏览: 36
```
#include <stdio.h>
#include <string.h>
void fun(char s[], char a[][N], int M, int N) {
int i, j, k = 0;
for (j = 0; j < N; j++) {
for (i = 0; i < M; i++) {
s[k++] = a[i][j];
}
}
s[k] = '\0';
}
int main() {
int M = 3, N = 4;
char a[M][N] = {
{'a', 'b', 'c', 'd'},
{'e', 'f', 'g', 'h'},
{'i', 'j', 'k', 'l'}
};
char s[M*N+1];
fun(s, a, M, N);
printf("%s\n", s);
return 0;
}
```
相关问题
请用c语言编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。
好的,我可以回答这个问题。以下是函数fun的代码:
```c
void fun(char *str, char arr[][N], int M, int N) {
int i, j, k = ;
for (j = ; j < N; j++) {
for (i = ; i < M; i++) {
str[k++] = arr[i][j];
}
}
str[k] = '\';
}
```
其中,str是存放结果的字符串,arr是二维字符数组,M和N分别是行数和列数。函数的实现思路是,先按列循环,再按行循环,将每个字符依次放到字符串中,最后在字符串末尾加上'\',表示字符串的结束。
c语言请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。
下面是一个可能的实现方式:
```c
void fun(char str[], char arr[][N], int M, int N) {
int i, j, k;
k = 0; // 字符串索引
for (j = 0; j < N; j++) { // 按列遍历
for (i = 0; i < M; i++) { // 遍历每一行
str[k++] = arr[i][j];
}
}
str[k] = '\0'; // 字符串结尾
}
```
其中,`str` 是存放结果的字符串指针,`arr` 是输入的二维字符数组,`M` 和 `N` 分别表示行数和列数。函数内部使用两个循环,按列遍历每个元素并依次添加到字符串中,最后在字符串末尾加上终止符 `\0`。