logo

Coarda inversă în C

Inversarea unui șir în C este o operație fundamentală care implică rearanjarea caracterelor dintr-un șir astfel încât ultimul caracter să devină primul, al doilea până ultimul caracter să devină al doilea și așa mai departe.

De exemplu,

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

În acest articol, vom discuta diferite moduri de a inversa un șir în C cu exemple de cod.



Diferite moduri de a inversa un șir în C

Există diferite moduri de a inversa șirul în C. Unele dintre ele sunt discutate mai jos:

  1. Inversați șirul folosind bucla
  2. Inversați șirul folosind recursiunea
  3. Inversați șirul folosind indicatorul în C
  4. Inversați șirul folosind funcția de bibliotecă

1. Inversați șirul folosind bucla

În această metodă,

  • Folosim o buclă for cu două variabile i și j indicând începutul și respectiv sfârșitul șirului.
  • Înlocuim caracterele de la indecșii i și j și ne deplasăm la dreapta și, respectiv, la stânga adiacente, adică incrementând i și diminuând j.
  • Continuăm să facem asta până când i este mai mare sau egal cu j.

Obținem șirul inversat ca rezultat.

Implementarea

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

>

>

Ieșire

java instanțiat
Original String: string Reversed String: gnirts>

2. Inversați șirul folosind recursiunea

Pentru această metodă, vom folosi recursiunea pentru a schimba caracterele.

Implementarea

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

>

>

java adauga la o matrice
Ieșire

Original String: string Reversed String: gnirts>

3. Inversați șirul folosind indicatorul în C

Vom folosi aici două indicatori, unul este indicatorul de început și altul este indicatorul de final. iar prin schimbarea caracterului vom proceda la realizarea, inversarea caracterelor similar cu ceea ce am făcut în prima metodă.

Implementarea

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

>

>

Ieșire

Original String: string Reversed String: gnirts>

4. Inversați șirul folosind funcția de bibliotecă

În C, avem o funcție de bibliotecă definită în interior care poate fi folosită pentru a inversa un șir. Funcția strrev() oferă cea mai simplă metodă de a inversa șirul.

ce este desktop.ini

Sintaxă

char* strrev(char* str);>

unde, str este șirul care trebuie inversat.

Notă: Funcția strrev() nu face parte din limbajul standard C, așa că ar putea să nu fie prezentă în fiecare compilator.

Implementarea

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

>

>

Ieșire

Original String: string Reversed String: gnirts>