【发布时间】:2018-10-15 17:31:27
【问题描述】:
我想在 C 中交换两行字符串数组。
例如:
第一行 , 第二行
交换后: 第二行第一行
这个函数应该怎么看,swap_rows() func 不起作用。
我应该以某种方式使用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;
}
【问题讨论】:
-
只是一个提示,所以你的作业仍然是一个挑战:你将如何交换任何两个变量的值?
-
@purec: 第一行在偏移量
0... -
我投票结束这个问题,因为它看起来像一个写我的代码请求。
-
char* tmp = str_tab[0]; str_tab[0] = str_tab[1]; str_tab[1] = tmp;
标签: c arrays dynamic allocation