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

       

Еще более простой вариант решения


/* Еще более простой вариант решения: просто обменивать элементы местами.

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



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