L'inversione di una stringa in C è un'operazione fondamentale che comporta la riorganizzazione dei caratteri di una stringa in modo che l'ultimo carattere diventi il primo, il penultimo carattere diventi il secondo e così via.
Per esempio,
Original String: 'string' Reversed String: 'gnirts'>
In questo articolo discuteremo diversi modi per invertire una stringa in C con esempi di codice.
Diversi modi per invertire una stringa in C
Esistono vari modi per invertire la corda nel Do. Alcuni di essi sono discussi di seguito:
- Invertire la corda utilizzando Loop
- Invertire la stringa utilizzando la ricorsione
- Invertire la stringa utilizzando il puntatore in C
- Invertire la stringa utilizzando la funzione di libreria
1. Invertire la corda utilizzando Loop
In questo metodo,
- Usiamo un ciclo for con due variabili i e j che puntano rispettivamente all'inizio e alla fine della stringa.
- Quindi sostituiamo i caratteri negli indici i e j e ci spostiamo rispettivamente a destra e a sinistra adiacenti, ovvero incrementando i e decrementando j.
- Continuiamo a farlo finché i è maggiore o uguale a j.
Come risultato otteniamo la stringa invertita.
Implementazione
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;> }> |
>
>Produzione
Java istanziato
Original String: string Reversed String: gnirts>
2. Invertire la stringa utilizzando la ricorsione
Per questo metodo utilizzeremo la ricorsione per scambiare i caratteri.
Implementazione
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; }> |
>
>
topologia di reteProduzione
Original String: string Reversed String: gnirts>
3. Invertire la stringa utilizzando il puntatore in C
Utilizzeremo qui due puntatori, uno è il puntatore di inizio e l'altro è il puntatore di fine. e scambiando il carattere procederemo a realizzare, invertire i caratteri in modo simile a quanto abbiamo fatto nel primo metodo.
Implementazione
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; }> |
>
>Produzione
Original String: string Reversed String: gnirts>
4. Invertire la stringa utilizzando la funzione di libreria
In C, abbiamo una funzione di libreria definita al suo interno che può essere utilizzata per invertire una stringa. La funzione strrev() fornisce il metodo più semplice per invertire la stringa.
Sintassi
char* strrev(char* str);>
dove str è la stringa da invertire.
Nota: La funzione strrev() non fa parte del linguaggio C standard, quindi potrebbe non essere presente in tutti i compilatori.
linux quale comando
Implementazione
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;> }> |
>
>
Produzione
Original String: string Reversed String: gnirts>