Еще более простой вариант решения
/* Еще более простой вариант решения: просто обменивать элементы местами.
A B C D E F G H I J J B C D E F G H I A | | эти J B C D E F G H I A J I C D E F G H B A | | потом эти J I C D E F G H B A J I H D E F G C B A | | потом эти ----> <-----
J I H D E F G C B A J I H G E F D C B A | | J I H G E F D C B A | | J I H G F E D C B A
стоп. */
#include
/* Обмен значений двух переменных типа char */ void swap(char *s1, char *s2){ char c;
c = *s1; *s1 = *s2; *s2 = c; }
void reverse(char s[], int n){ int first, last;
first = 0; /* индекс первого элемента массива */ last = n-1; /* индекс последнего элемента массива */
while(first < last){ /* пока first левее last */ swap(&s[first], &s[last]); first++; /* сдвинуть вправо */ last--; /* сдвинуть влево */ } }
char testString[] = "abcdefghijklmnopqrstuvwxyz.";
void main(){ int len;
len = strlen(testString); /* Есть такая стандартная функция */ reverse(testString, len); printf("Инвертированная строка: %s\n", testString); }