请用c语言编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。主函数中接收一个字符串并将其输出成二维数组
时间: 2023-04-02 17:01:48 浏览: 96
以下是函数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++) {
k = j * M + i;
str[k] = arr[i][j];
}
}
str[k] = '\';
}
```
其中,str是存放结果的字符串,arr是存放字符数据的二维数组,M和N分别是数组的行数和列数。
以下是主函数的代码:
```c
int main() {
char arr[M][N] = {{'a', 'b', 'c'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}};
char str[M * N + 1];
fun(str, arr, M, N);
printf("%s\n", str);
return ;
}
```
其中,arr是一个3行3列的二维数组,存放了字符数据。str是一个长度为10的字符数组,用来存放结果。在调用函数fun之后,将结果输出即可。
相关问题
请用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列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中
```
void fun(char arr[][N], int M, int N, char *result) {
for (int j = 0; j < N; j++) {
for (int i = 0; i < M; i++) {
*(result++) = arr[i][j];
}
}
*result = '\0'; // 添加字符串结束符
}
```
使用方法:
```
char arr[M][N];
char result[M * N + 1];
// 给 arr 赋值
fun(arr, M, N, result);
printf("%s\n", result);
```