Kuinka kääntää merkkijono C: ssä

How Reverse String C



Merkkijonokoodauksessa merkkijonon kääntäminen on tärkeä aihe. Merkkijonon kääntämiseen on myös useita menetelmiä, joista jokaisella on erilainen logiikka. Tässä artikkelissa kerrotaan, miten merkkijono voidaan kääntää oikein useiden eri lähestymistapojen ja päättelyn käyttämiseksi ilman esiasetettuja toimintoja ja ilman niitä. Aina kun merkkijonotekniikan kääntöä sovelletaan tiettyyn ainutlaatuiseen syöttöjonoon, teksti, jonka kuluttaja toimittaisi tietyssä järjestyksessä, käännetään kokonaan. Alla olevassa esimerkissä on käytetty erilaisia ​​vaihtoehtoja merkkijonon kääntämiseksi C: llä.

Tätä opasta toteutettaessa olemme työskennelleet Ubuntu 20.04 Linux -järjestelmän kanssa, joka on määritetty Virtual Boxille. Kun työskentelimme Linux -järjestelmän parissa, teimme suurimman osan asennuksista ja kyselyistä päätelaitteen kuorella. Avaa terminaalin kuori pikanäppäimellä Ctrl+Alt+T tai etsi se sovelluksen hakupalkista Ubuntu -työpöydän Toiminta -alueen alla. Järjestelmä on päivitettävä ensin apt päivityskyselyn kautta. Se pyytää nykyistä käyttäjän salasanaa päivityksen suorittamiseen. Lisää siis salasana ja paina Enter -painiketta.







$ sudo apt päivitys



Koska olemme käyttäneet C -ohjelmointikieltä kehittääksesi merkkijonojen kääntämisen käsitteen Ubuntu 20.04 -järjestelmässä, Ubuntu -järjestelmään pitäisi olla asennettu C -kääntäjä. Varmista siis, että asennat GCC -kääntäjän järjestelmääsi alla olevan kyselyn kautta.



$ sudo apt asentaa gcc

Esimerkki 01: Silmukan käyttö

Kun GCC -kääntäjä on asennettu ja määritetty ja apt -paketti on päivitetty, se luo uuden tiedoston. Tämän tiedoston tulee olla C -tyyppinen; siksi luo kosketuskomennolla uusi tiedosto. c kuten alla. Tätä tiedostoa käytetään koodissamme tästä lähtien käänteisten merkkijono -ohjelmien toteuttamisen aikana.





$ koskettaa uutta.c

Nyt voit avata tämän tiedoston muokattavaksi tai koodattavaksi Nano-editorilla, joka on sisäänrakennettu Ubuntu 20.04 Linux -järjestelmääsi. Siksi kokeile kuoren alla olevia ohjeita tehdäksesi niin.



$ nano uusi.c

Äskettäin luotu uusi C-tyypin tiedosto on avattu Ubuntu 20.04 -järjestelmän GNU Nano Editorissa. Sinun on kirjoitettava siihen C -komentosarja, kuten alla olevassa kuvakaappauksessa esitetään. Tarkennamme tätä koodia, jotta ymmärrät paremmin. Koodin alussa olemme sisällyttäneet kaksi kirjastoa. Kirjastoa stdio.h on käytetty syötteiden vastaanottamiseen ja tulosten näyttämiseen, ja toista kirjaston merkkijonoa.h on käytetty kaikenlaisten merkkijonojen käyttämiseen koodissamme. Kaikki merkkijonon kääntämistyöt tehdään C -koodin main () -menetelmällä. Olemme ilmoittaneet merkkityyppisen merkkijonon, jonka koko on 50. Tämä tarkoittaa, että merkkijonoa, jossa on yli 50 merkkiä, ei voida käyttää tässä koodissa. Sen jälkeen olemme ilmoittaneet kaksi kokonaislukutyyppistä muuttujaa. Muuttujaa l on käytetty merkkijonon pituuden keräämiseen, ja muuttujaa I käytetään silmukan alustuslaitteena. Sitten olemme käyttäneet printf -lauseketta tekstin tulostamiseen kuoren Enter -merkkijonoon, jossa käsketään käyttäjää lisäämään arvo merkkijonomuuttujalle. Scanf () -menetelmää on käytetty syöttämään käyttäjä ajon aikana ja tallentamaan arvo merkkijonoon. Funktiota strlen () on käytetty tarkistamaan merkkijonon pituus, jonka käyttäjä on lisännyt ajon aikana, ja tallentanut sen muuttujaan l ’. Sitten alustimme for -silmukan kääntääksesi merkkijonon str. Voit nähdä, että alustuslaite I ’ottaa arvon muuttujalta l kääntääkseen merkkijonon suunnan. Sitten se tulostaa merkkijonon merkkien käännökset yksitellen. Viimeisenä päämenetelmä on lopetettu. Tallenna tämä tiedosto painamalla Ctrl+S ja sulje se Ctrl+X -näppäimellä.

Nyt on aika koota koodi ja tarkistaa sen tulos. Näin ollen kokoaminen on suoritettu alla mainitulla gcc-kyselyllä tiedoston nimellä new.c.

$ gcc uutta.c

Kun kääntäminen onnistuu, se tarkoittaa, että koodissamme ei ole virhettä. Suoritamme tiedostomme kuoren a.out -kyselyllä seuraavasti:

$./kohteeseen.ulos

Suoritusprosessi pyytää käyttäjää lisäämään merkkijonon. Olemme lisänneet I-Am-Aqsa-Yasin ja painaneet Enter. Näet sen palauttavan merkkijonon kääntöpuolen seuraavalla rivillä.

Esimerkki 02: Vaihdon käyttäminen

Tässä esimerkissä vaihdamme merkkijonon järjestystä vaihtomenetelmällä. Avaa tiedosto new.c uudelleen nano -editorilla seuraavasti:

$ nano uusi.c

Nyt tiedosto on avattu GNU nano editorissa; meidän on päivitettävä kooditiedosto alla olevalla skriptillä kuvakaappauksessa. Olemme sisällyttäneet vakiotulo- ja -lähtötunnisteen koodiin ensin käyttämällä avainsanaa #include. Olemme määrittäneet menetelmän Käänteinen () vaihtotekniikan käytön mukaan. Olemme alustaneet kolme kokonaislukutyyppistä muuttujaa new, I ja swap. Ensimmäistä silmukkaa käytetään tarkistamaan, onko merkkijono s tyhjä vai ei. Seuraavaa silmukkaa käytetään iterointiin, ja sen rungossa olemme vaihtaneet arvot uusilla ja swap -muuttujilla. On syytä huomata, että n-pituisen merkkijonon kääntäminen vie vain n/2 kierrosta. Kun merkkijonot on vaihdettu, sinun on tehtävä silmukka uudelleen näyttääksesi käänteisen merkkijonon, mitä teemme sovelluksessamme käyttämällä kolmatta silmukkaa. Funktio Käänteinen () on kutsuttava pääohjelman sisältä. Olet ilmoittanut, mitä ohjelmistosi suorittaa printf: n kanssa main (): n yhteydessä. Tämän jälkeen käytit scanf (): ää käyttäjän syötteen saamiseen ja käytit käänteistä () -menetelmää. Tallenna nyt tiedosto uudelleen Ctrl+S -näppäimellä ja jätä nanoeditori Ctrl+X -pikanäppäimellä ja palaa terminaalikuoreen.

Käännä koodi ensin gcc -kyselyllä alla kuvatulla tavalla.

$ gcc uutta.c

Suorita nyt kooditiedosto samalla ohjeella ./a.out.

$./kohteeseen.ulos

Se pyytää sinua syöttämään merkkijonon arvon. Olemme lisänneet AqsaYasinin ja saaneet sen päinvastaiseksi.

Esimerkki 03: Rekursion käyttäminen

Tässä esimerkissä käytämme rekursiota käyttäjän lisäämän merkkijonon kääntämiseen. Avaa siis tiedosto uudelleen.

$ nano uusi.c

Tämä ohjelma tulostaa Kirjoita lause: Sitten käytetään käänteistä () menetelmää. Käyttäjän syöttämä ensimmäinen kirjain tallennetaan c -kirjaimella tällä menetelmällä. Käänteinen () suoritetaan uudelleen, jos argumentti on jotain muuta kuin n (uusi rivi). Tämä toimenpide jatkuu, kunnes käyttäjä painaa Enter -näppäintä. Aina kun käyttäjä painaa Enter -näppäintä, käänteinen () -menetelmä tulostaa tekstin päinvastaisessa järjestyksessä. Tallenna ja sulje tiedosto.

Käännä koodi ensin ja suorita se käyttämällä edellisiä komentoja seuraavasti:

$ gcc uutta.c

$./kohteeseen.ulos

Voit nähdä, että se syöttää käyttäjän syötteen kokonaisena merkkijonolauseena ja kääntää sitten lauseen järjestyksen.

Johtopäätös:

Lopuksi olemme tehneet kolme esimerkkiä kehittääksemme merkkijonotyypin syötteen kääntämisen eri menetelmillä, esim. Käyttämällä silmukkaa, käyttämällä rekursiota ja vaihtamista.