Reversā virkne C
Virknes apgriešana C valodā ir fundamentāla darbība, kas ietver rakstzīmju pārkārtošanu virknē tā, lai pēdējā rakstzīme kļūtu par pirmo, no otrā līdz pēdējā rakstzīme kļūtu par otro utt.
Piemēram,
Original String: 'string' Reversed String: 'gnirts'
Šajā rakstā mēs apspriedīsim dažādus veidus, kā apgriezt virkni C valodā, izmantojot kodu piemērus.
Dažādi veidi, kā apgriezt virkni C
Ir dažādi veidi, kā apgriezt virkni C. Daži no tiem ir apskatīti tālāk:
- Apgrieziet virkni, izmantojot cilpu
- Apgriezt virkni, izmantojot rekursiju
- Apgrieziet virkni, izmantojot rādītāju C
- Apgrieziet virkni, izmantojot bibliotēkas funkciju
1. Apgrieziet virkni, izmantojot cilpu
Izmantojot šo metodi,
- Mēs izmantojam for cilpu ar diviem mainīgajiem i un j, kas norāda attiecīgi uz virknes sākumu un beigām.
- Mēs aizstājam rakstzīmes indeksos i un j un pārvietojamies attiecīgi uz blakus esošo labo un kreiso pusi, t.i., palielinot i un samazinot j.
- Mēs turpinām to darīt, līdz i ir lielāks vai vienāds ar j.
Rezultātā mēs iegūstam apgrieztu virkni.
Īstenošana
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;> }> |
Izvade
Original String: string Reversed String: gnirts
2. Apgriezt virkni, izmantojot rekursiju
Šai metodei mēs izmantosim rekursiju, lai apmainītu rakstzīmes.
Īstenošana
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; }> |
Izvade
Original String: string Reversed String: gnirts
3. Apgrieziet virkni, izmantojot rādītāju C
Šeit mēs izmantosim divus rādītājus, viens ir sākuma rādītājs un otrs ir beigu rādītājs. un, nomainot rakstzīmi, mēs turpināsim sasniegt, apgrieziet rakstzīmes līdzīgi tam, ko mēs darījām pirmajā metodē.
Īstenošana
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; }> |
Izvade
Original String: string Reversed String: gnirts
4. Apgrieziet virkni, izmantojot bibliotēkas funkciju
Programmā C mums ir definēta bibliotēkas funkcija, ko var izmantot, lai apgrieztu virkni. Funkcija strrev () nodrošina vienkāršāko metodi virknes apvēršanai.
Sintakse
char* strrev(char* str);
kur str ir apgrieztā virkne.
Piezīme: Funkcija strrev () nav standarta C valodas daļa, tāpēc tā var nebūt pieejama katrā kompilatorā.
Īstenošana
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;> }> |
Izvade
Original String: string Reversed String: gnirts