Käänteinen merkkijono C:ssä

Merkkijonon kääntäminen C:ssä on perustavanlaatuinen toimenpide, joka sisältää merkkijonon merkkien järjestämisen uudelleen siten, että viimeisestä merkistä tulee ensimmäinen, toiseksi viimeisestä merkistä toinen ja niin edelleen.

Esimerkiksi,

Original String: 'string'  Reversed String: 'gnirts' 

Tässä artikkelissa käsitellään erilaisia ​​tapoja kääntää merkkijono C:ssä koodiesimerkein.

Eri tapoja kääntää merkkijono C:ssä

On olemassa useita tapoja kääntää merkkijono C:ssä. Joitakin niistä käsitellään alla:

  1. Käännä merkkijono päinvastaiseksi käyttämällä silmukkaa
  2. Kääntä merkkijono käyttämällä rekursiota
  3. Käännä merkkijono käänteisesti käyttämällä osoitinta C:ssä
  4. Kääntä merkkijono kirjastofunktiolla

1. Käännä merkkijono päinvastaiseksi käyttämällä silmukkaa

Tässä menetelmässä

  • Käytämme for-silmukkaa, jossa on kaksi muuttujaa i ja j, jotka osoittavat merkkijonon alkuun ja loppuun.
  • Korvataan merkit indekseissä i ja j ja siirrytään viereiselle oikealle ja vasemmalle, eli kasvatetaan i:tä ja vähennetään j:ää.
  • Jatkamme tätä, kunnes i on suurempi tai yhtä suuri kuin j.

Tuloksena saamme käänteisen merkkijonon.

Toteutus

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;> }>

Lähtö

Original String: string Reversed String: gnirts 

2. Kääntä merkkijono käyttämällä rekursiota

Tässä menetelmässä käytämme rekursiota merkkien vaihtamiseen.

Toteutus

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; }>

Lähtö

Original String: string Reversed String: gnirts 

3. Käännä merkkijono käänteisesti käyttämällä osoitinta C:ssä

Käytämme tässä kahta osoitinta, yksi on aloitusosoitin ja toinen on loppuosoitin. ja vaihtamalla hahmoa, jonka saavuttamiseksi jatkamme, käännä merkit samalla tavalla kuin ensimmäisessä menetelmässä.

Toteutus

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; }>

Lähtö

Original String: string Reversed String: gnirts 

4. Kääntä merkkijono kirjastofunktiolla

C:ssä meillä on sisällä määritelty kirjastofunktio, jota voidaan käyttää merkkijonon kääntämiseen. Strrev()-funktio on yksinkertaisin tapa kääntää merkkijono.

Syntaksi

char* strrev(char* str); 

missä str on käännettävä merkkijono.

Huomautus: Strrev()-funktio ei ole osa standardi C-kieltä, joten sitä ei välttämättä ole jokaisessa kääntäjässä.

Toteutus

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;> }>

Lähtö

Original String: string Reversed String: gnirts