Проблема состоит в том, чтобы обратить все строки в массиве указателей на строки. Я написал следующий код для того же. После показа введенных строк код не может перевернуть строки. Я попытался изменить указатели символов el
и el2
на символы, но безрезультатно. Пожалуйста, помогите мне с этим.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
int x, i, length, len, j;
printf("How many strings you want to enter:\n");
scanf("%d", &x);
char *strings[x], string[50], *p, *t, *el, *el2;
for (i = 0; i < x; i++) {
scanf(" %49[^\n]", string);
length = strlen(string);
p = (char *)malloc(length + 1);
strcpy(p, string);
strings[i] = p;
}
printf("Entered strings are:\n");
for (i = 0; i < x; i++) {
printf("%s\n", strings[i]);
}
printf("Reversed strings :\n");
for (i = 0; i < x; i++) {
len = strlen(strings[i]);
for (j = 0; j <= (len - 2) / 2; j++) {
el = (strings[i] + j);
el2 = (strings[i] + (len - j - 1));
t = el2;
el2 = el;
el = t;
}
}
for (i = 0; i < x; i++) {
printf("%s\n", strings[i]);
}
return 0;
}