logo

Corda inversa en C

Invertir una cadena en C és una operació fonamental que consisteix a reordenar els caràcters d'una cadena de manera que l'últim caràcter es converteixi en el primer, el penúltim caràcter es converteixi en el segon, i així successivament.

Per exemple,

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

En aquest article, parlarem de diferents maneres d'invertir una cadena en C amb exemples de codi.



Diferents maneres d'invertir una cadena en C

Hi ha diverses maneres d'invertir la corda en C. A continuació es comenten algunes d'elles:

  1. Inverteix la cadena utilitzant el bucle
  2. Inverteix la cadena mitjançant la recursència
  3. Inverteix la cadena utilitzant el punter en C
  4. Inverteix la cadena mitjançant la funció de biblioteca

1. Inverteix la cadena utilitzant el bucle

En aquest mètode,

  • Utilitzem un bucle for amb dues variables i i j que apunten a l'inici i al final de la cadena respectivament.
  • Substituïm els caràcters dels índexs i i j i ens movem cap a la dreta i l'esquerra adjacents respectivament, és a dir, augmentant i i disminuint j.
  • Seguim fent-ho fins que i sigui més gran o igual que j.

Com a resultat obtenim la cadena invertida.

Implementació

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

>

>

Sortida

alinear una imatge en css
Original String: string Reversed String: gnirts>

2. Inverteix la cadena mitjançant la recursència

Per a aquest mètode, utilitzarem la recursió per intercanviar els caràcters.

Implementació

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

>

>

per a cada mecanografia
Sortida

Original String: string Reversed String: gnirts>

3. Inverteix la cadena utilitzant el punter en C

Aquí farem servir dos punters, un és el punter inicial i un altre és el punter final. i intercanviant el caràcter procedirem a aconseguir, invertir els caràcters de manera semblant al que hem fet en el primer mètode.

Implementació

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

>

>

Sortida

Original String: string Reversed String: gnirts>

4. Inverteix la cadena mitjançant la funció de biblioteca

A C, tenim una funció de biblioteca definida a l'interior que es pot utilitzar per invertir una cadena. La funció strrev() proporciona el mètode més senzill per invertir la cadena.

Sintaxi

char* strrev(char* str);>

on, str és la cadena que s'ha d'invertir.

Nota: La funció strrev() no forma part del llenguatge C estàndard, de manera que pot ser que no estigui present a tots els compiladors.

Implementació

C


on és la configuració del navegador



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

>

>

Sortida

Original String: string Reversed String: gnirts>