Еще один вариант решения
/* Еще один вариант решения: сформировать ответ в дополнительном массиве, а потом скопировать его на прежнее место. */
#include
char testString[] = "abcdefghijklmnopqrstuvwxyz.";
/* Конструкция sizeof(массив)/sizeof(массив[0]) выдает размер массива, даже если он не был явно объявлен. Эта конструкция применяется (чаще всего) для задания массива с размером, равным размеру уже объявленного массива. */
char tempString[ sizeof(testString) / sizeof(testString[0]) ];
void reverse(char s[], int n){ int i;
/* вывернуть, результат в tempString[] */ for(i=0; i < n; i++) tempString[n-1-i] = s[i];
tempString[n] = '\0'; /* признак конца строки */
/* скопировать на старое место */ for(i=0; i < n; i++) s[i] = tempString[i];
s[n] = '\0'; /* признак конца строки */ }
void main(){ int len;
len = strlen(testString); /* Есть такая стандартная функция */ reverse(testString, len); printf("Инвертированная строка: %s\n", testString); }