logo

Зворотний рядок у C

Реверсування рядка в C — це фундаментальна операція, яка передбачає перевпорядкування символів у рядку таким чином, щоб останній символ став першим, передостанній — другим і так далі.

Наприклад,

Original String: 'string'  Reversed String: 'gnirts'>

У цій статті ми обговоримо різні способи перевернути рядок у C із прикладами коду.



Різні способи перевернути рядок у C

Існують різні способи перевернути рядок у C. Деякі з них обговорюються нижче:

  1. Перевернути рядок за допомогою циклу
  2. Перевернути рядок за допомогою рекурсії
  3. Перевернути рядок за допомогою покажчика в C
  4. Перевернути рядок за допомогою функції бібліотеки

1. Перевернути рядок за допомогою циклу

У цьому методі

  • Ми використовуємо цикл for із двома змінними i та j, які вказують на початок і кінець рядка відповідно.
  • Ми замінюємо символи в індексах i та j і переміщуємось до сусідніх праворуч та ліворуч відповідно, тобто збільшуємо i та зменшуємо j.
  • Ми продовжуємо це робити, доки i не буде більше або дорівнюватиме j.

У результаті ми отримуємо перевернутий рядок.

Реалізація

C




// C program to reverse the string in C using loops> #include> #include> int> main()> {> >// string to be reversed.> >char> str[100] =>'string'>;> >printf>(>'Original String: %s '>, str);> >// string length> >int> len =>strlen>(str);> >// for loop> >for> (>int> i = 0, j = len - 1; i <= j; i++, j--) {> >// swapping characters> >char> c = str[i];> >str[i] = str[j];> >str[j] = c;> >}> >printf>(>'Reversed String: %s'>, str);> >return> 0;> }>

>

>

Вихід

логічний рядок Java
Original String: string Reversed String: gnirts>

2. Перевернути рядок за допомогою рекурсії

Для цього методу ми будемо використовувати рекурсію для заміни символів.

Реалізація

C




// C program to reverse string using recursion> #include> #include> // recursive function to reverse string> void> reverse(>char>* str,>int> len,>int> i,>int> temp)> {> >// if current index is less than the remaining length of> >// string> >if> (i temp = str[i]; str[i] = str[len - 1]; str[len - 1] = temp; i++; len--; reverse(str, len, i, temp); } } // driver code int main() { char str[100] = 'string'; printf('Original String: %s ', str); int len = strlen(str); reverse(str, len, 0, 0); printf('Reversed String: %s', str); return 0; }>

>

>

python os listdir
Вихід

Original String: string Reversed String: gnirts>

3. Перевернути рядок за допомогою покажчика в C

Тут ми будемо використовувати два вказівники, один — початковий, а інший — кінцевий. і, помінявши символ, якого ми продовжимо досягати, перевернемо символи, подібно до того, що ми робили в першому методі.

Реалізація

C




// C program to reverse a string using pointers> #include> #include> // function to reverse the string> void> stringReverse(>char>* str)> {> >int> len =>strlen>(str);> >// pointers to start and end> >char>* start = str;> >char>* end = str + len - 1;> >while> (start char temp = *start; *start = *end; *end = temp; start++; end--; } } // driver code int main() { char str[] = 'string'; printf('Original String: %s ', str); // calling function stringReverse(str); printf('Reversed String: %s', str); return 0; }>

>

однорідна суміш

>

Вихід

Original String: string Reversed String: gnirts>

4. Перевернути рядок за допомогою функції бібліотеки

У C у нас є бібліотечна функція, визначена всередині, яку можна використовувати для перевертання рядка. Функція strrev() забезпечує найпростіший спосіб перевернути рядок.

Синтаксис

char* strrev(char* str);>

де str - це рядок, який потрібно перевернути.

Примітка: Функція strrev() не є частиною стандартної мови C, тому вона може бути присутня не в кожному компіляторі.

Реалізація

C




// C program to reverse a string using strrev()> #include> #include> int> main()> {> >char> str[] =>'string'>;> >printf>(>'Original String: %s '>, str);> >// reversing string> >printf>(>'Reversed String: %s'>, strrev(str));> >return> 0;> }>

>

>

Вихід

Original String: string Reversed String: gnirts>