Руководство полного чайника по программированию на языке Си

Еще один вариант решения


/* Еще один вариант решения: сформировать ответ в дополнительном массиве, а потом скопировать его на прежнее место. */

#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); }



Содержание раздела