请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中。
时间: 2023-11-18 15:05:23 浏览: 83
好的,下面是函数fun的实现,其中arr是二维数组的指针,M和N分别表示行数和列数:
```c
void fun(char *str, char **arr, int M, int N) {
int i, j, k = 0;
for (j = 0; j < N; j++) {
for (i = 0; i < M; i++) {
str[k++] = arr[i][j];
}
}
str[k] = '\0'; // 字符串结尾
}
```
函数中使用两个嵌套的循环,先按列循环,在列内按行循环,将每一列的字符顺序加入到字符串str中。最后在字符串结尾添加'\0',表示字符串的结束。
相关问题
请编写函数fun,函数的功能是:将M行N列的二维数组中的字符数据, 按列的顺序依次放到一个字符串中
```python
def fun(arr):
m = len(arr)
n = len(arr[0])
res = ''
for j in range(n):
for i in range(m):
res += arr[i][j]
return res
```
测试:
```python
arr = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
print(fun(arr)) # 'adgbehcfi'
```
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`。
阅读全文