gpt4 book ai didi

c - 在C中交换动态二维数组的行

转载 作者:行者123 更新时间:2023-11-30 20:19:24 27 4
gpt4 key购买 nike

我想交换 C 中的两行字符串数组。

例如:

第一行 ,第二行

交换后: 第二行,第一行

这个函数应该是什么样子,swap_rows() 函数不起作用。我应该使用 strcpy()以某种方式起作用?

我做了什么:

#define N 100

静态字符**str_tab;

void tab_alloc(const int M)
{
str_tab = (char **)malloc((M * sizeof(char *)));
for (int i = 0; i < M; i++)
str_tab[i] = (char *)malloc(N * sizeof(char));
}
void tab_fill()
{
size_t M = _msize(str_tab) / sizeof(char *);
for (int i = 0; i < M; i++)
gets_s(str_tab[i], N);
}

void swap_rows()
{
int row1, row2;
puts("Which rows u want swap?");
puts("put 1:");
scanf_s("%d", &row1);
puts("put 2:");
scanf_s("%d", &row2);
char *temp = str_tab[row1];
strcpy(str_tab[row1], str_tab[row2]); // str_tab[row1] = str_tab[row2];
strcpy(str_tab[row2], temp); // str_tab[row2] = temp;
}

最佳答案

您只需交换指针即可。

void swap_rows(char **array, int row1, int row2) {
char *temp = array[row1];
array[row1] = array[row2];
array[row2] = temp;
}

关于c - 在C中交换动态二维数组的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com