logo

Odwrotny ciąg w C

Odwracanie ciągu znaków w języku C to podstawowa operacja polegająca na zmianie kolejności znaków w ciągu znaków w taki sposób, że ostatni znak staje się pierwszym, przedostatni znak staje się drugim i tak dalej.

Na przykład,

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

W tym artykule omówimy różne sposoby odwracania ciągu w C z przykładami kodu.



Różne sposoby odwracania ciągu w C

Istnieją różne sposoby odwrócenia ciągu w C. Niektóre z nich omówiono poniżej:

  1. Odwróć ciąg za pomocą pętli
  2. Odwróć ciąg za pomocą rekurencji
  3. Odwróć ciąg za pomocą wskaźnika w C
  4. Odwróć ciąg za pomocą funkcji bibliotecznej

1. Odwróć ciąg za pomocą pętli

W tej metodzie

  • Używamy pętli for z dwiema zmiennymi i i j wskazującymi odpowiednio początek i koniec łańcucha.
  • Zamieniamy znaki w indeksach i i j oraz przesuwamy się odpowiednio w prawo i w lewo, tj. zwiększamy i i zmniejszamy j.
  • Robimy to tak długo, aż i będzie większe lub równe j.

W rezultacie otrzymujemy odwrócony ciąg znaków.

Realizacja

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

>

>

Wyjście

gdzie jest klawisz wstawiania na klawiaturze laptopa
Original String: string Reversed String: gnirts>

2. Odwróć ciąg za pomocą rekurencji

W przypadku tej metody użyjemy rekurencji do zamiany znaków.

Realizacja

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

>

>

string.compareto C#
Wyjście

Original String: string Reversed String: gnirts>

3. Odwróć ciąg za pomocą wskaźnika w C

Użyjemy tutaj dwóch wskaźników, jeden to wskaźnik początkowy, a drugi to wskaźnik końcowy. i zamieniając znak, do którego będziemy dążyć, odwróć znaki podobnie jak to zrobiliśmy w pierwszej metodzie.

Realizacja

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

>

>

Wyjście

Original String: string Reversed String: gnirts>

4. Odwróć ciąg za pomocą funkcji bibliotecznej

W C mamy zdefiniowaną wewnątrz funkcję biblioteczną, której można użyć do odwrócenia ciągu znaków. Funkcja strrev() zapewnia najprostszą metodę odwrócenia ciągu.

Składnia

char* strrev(char* str);>

gdzie str jest ciągiem, który ma zostać odwrócony.

Notatka: Funkcja strrev() nie jest częścią standardowego języka C, więc może nie być dostępna w każdym kompilatorze.

mylivecriclet

Realizacja

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

>

>

Wyjście

Original String: string Reversed String: gnirts>