Het omkeren van een string in C is een fundamentele handeling waarbij de karakters in een string worden herschikt, zodat het laatste karakter het eerste wordt, het op een na laatste karakter het tweede, enzovoort.
Bijvoorbeeld,
Original String: 'string' Reversed String: 'gnirts'>
In dit artikel bespreken we verschillende manieren om een string in C om te keren met codevoorbeelden.
Verschillende manieren om een string in C om te keren
Er zijn verschillende manieren om de snaar in de C om te keren. Enkele daarvan worden hieronder besproken:
- Keer de string om met behulp van een lus
- Keer de tekenreeks om met behulp van recursie
- Keer de tekenreeks om met behulp van de aanwijzer in C
- Keer de string om met behulp van de bibliotheekfunctie
1. Keer de string om met behulp van een lus
Bij deze methode
- We gebruiken een for-lus met twee variabelen i en j die respectievelijk naar het begin en het einde van de string verwijzen.
- Vervolgens vervangen we de tekens op de indexen i en j, en gaan respectievelijk naar de aangrenzende rechter en linker zijde, d.w.z. we verhogen i en verlagen j.
- We blijven dat doen totdat i groter is dan of gelijk is aan j.
We krijgen de omgekeerde string als resultaat.
Implementatie
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;> }> |
>
>Uitvoer
priemgetal Java
Original String: string Reversed String: gnirts>
2. Keer de tekenreeks om met behulp van recursie
Voor deze methode gebruiken we recursie om de tekens te verwisselen.
Implementatie
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-exemplaar vanUitvoer
Original String: string Reversed String: gnirts>
3. Keer de tekenreeks om met behulp van de aanwijzer in C
We zullen hier twee aanwijzers gebruiken, de ene is de startaanwijzer en de andere is de eindaanwijzer. en door het karakter te verwisselen zullen we doorgaan met het omkeren van de karakters, vergelijkbaar met wat we in de eerste methode hebben gedaan.
Implementatie
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; }> |
>
>Uitvoer
Original String: string Reversed String: gnirts>
4. Keer de string om met behulp van de bibliotheekfunctie
In C hebben we een bibliotheekfunctie gedefinieerd die kan worden gebruikt om een string om te keren. De functie strrev() biedt de eenvoudigste methode om de tekenreeks om te keren.
Syntaxis
char* strrev(char* str);>
waarbij str de string is die moet worden omgekeerd.
Opmerking: De functie strrev() maakt geen deel uit van de standaardtaal C en is dus mogelijk niet in elke compiler aanwezig.
Implementatie
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;> }> |
>
>
bash splitst de tekenreeks op door een scheidingsteken
Uitvoer
Original String: string Reversed String: gnirts>