Invertir una cadena en C es una operación fundamental que implica reorganizar los caracteres de una cadena de modo que el último carácter se convierta en el primero, el penúltimo carácter se convierta en el segundo, y así sucesivamente.
Por ejemplo,
Original String: 'string' Reversed String: 'gnirts'>
En este artículo, analizaremos diferentes formas de invertir una cadena en C con ejemplos de código.
Diferentes formas de invertir una cadena en C
Hay varias formas de invertir la cuerda en C. Algunas de ellas se analizan a continuación:
- Invertir la cuerda usando Loop
- Invertir la cadena usando recursividad
- Invertir la cadena usando el puntero en C
- Invertir la cadena usando la función de biblioteca
1. Invertir la cuerda usando Loop
En este método,
- Usamos un bucle for con dos variables i y j apuntando al inicio y al final de la cadena respectivamente.
- Luego reemplazamos los caracteres en los índices i y j, y nos movemos hacia la derecha e izquierda adyacentes respectivamente, es decir, incrementamos i y disminuyemos j.
- Seguimos haciendo eso hasta que i sea mayor o igual a j.
Obtenemos como resultado la cadena invertida.
Implementación
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;> }> |
>
>Producción
cadena booleana java
Original String: string Reversed String: gnirts>
2. Invertir la cadena usando recursividad
Para este método, usaremos la recursividad para intercambiar los caracteres.
Implementación
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; }> |
>
>
inteligencia artificial y agentes inteligentesProducción
Original String: string Reversed String: gnirts>
3. Invertir la cadena usando el puntero en C
Usaremos aquí dos punteros, uno es el puntero de inicio y el otro es el puntero de finalización. y al intercambiar el personaje procederemos a lograr invertir los personajes similar a lo que hemos hecho en el primer método.
Implementación
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; }> |
>
>Producción
Original String: string Reversed String: gnirts>
4. Invertir la cadena usando la función de biblioteca
En C, tenemos una función de biblioteca definida en su interior que se puede usar para invertir una cadena. La función strrev() proporciona el método más sencillo para invertir la cadena.
Sintaxis
char* strrev(char* str);>
donde str es la cadena que se va a invertir.
Nota: La función strrev() no forma parte del lenguaje C estándar, por lo que es posible que no esté presente en todos los compiladores.
programa Python para búsqueda binaria
Implementación
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;> }> |
>
>
Producción
Original String: string Reversed String: gnirts>