At vende en streng i C er en grundlæggende handling, der involverer at omarrangere tegnene i en streng, så det sidste tegn bliver det første, det næstsidste tegn bliver det andet, og så videre.
For eksempel,
Original String: 'string' Reversed String: 'gnirts'>
I denne artikel vil vi diskutere forskellige måder at vende en streng i C med kodeeksempler.
Forskellige måder at vende en streng på i C
Der er forskellige måder at vende strengen i C. Nogle af dem er diskuteret nedenfor:
- Vend strengen ved hjælp af loop
- Vend strengen ved hjælp af rekursion
- Vend strengen ved hjælp af markøren i C
- Vend strengen ved hjælp af biblioteksfunktionen
1. Vend strengen ved hjælp af loop
I denne metode,
- Vi bruger en for-løkke med to variable i og j, der peger på henholdsvis starten og slutningen af strengen.
- Vi erstatter tegnene ved indeks i og j, og flytter til henholdsvis højre og venstre ved siden af, dvs. øger i og dekrementerer j.
- Det fortsætter vi med, indtil i er større end eller lig med j.
Vi får den omvendte streng som resultat.
Implementering
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;> }> |
>
>Produktion
objekt lighed i java
Original String: string Reversed String: gnirts>
2. Vend strengen ved hjælp af rekursion
Til denne metode vil vi bruge rekursion til at bytte tegn.
Implementering
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; }> |
>
>
c++ parProduktion
Original String: string Reversed String: gnirts>
3. Vend strengen ved hjælp af markøren i C
Vi vil her bruge to pointere, en er start pointer og en anden er slut pointer. og ved at udskifte den karakter, vi vil fortsætte med at opnå, vende de tegn, der ligner det, vi har gjort i den første metode.
Implementering
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; }> |
>
>Produktion
Original String: string Reversed String: gnirts>
4. Vend strengen ved hjælp af biblioteksfunktionen
I C har vi en biblioteksfunktion defineret inde, som kan bruges til at vende en streng. Strrev()-funktionen giver den enkleste metode til at vende strengen.
Syntaks
char* strrev(char* str);>
hvor str er den streng, der skal vendes.
Bemærk: Strrev()-funktionen er ikke en del af standard C-sproget, så den er muligvis ikke til stede i hver compiler.
Implementering
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;> }> |
>
10 af 100,00
>
Produktion
Original String: string Reversed String: gnirts>