Я хочу поменять две строки массива строк в C.
например:
первый ряд
второй ряд
после обмена:
второй ряд, первый ряд
Как должна выглядеть эта функция, функция swap_rows () не работает.
Должен ли я использовать функцию strcpy()
как-то?
Что я сделал:
</p>
<pre><code>#define N 100
</code>
статический символ ** 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;
}