Ako obrátiť reťazec v C

How Reverse String C



Pri kódovaní reťazcov je obrátenie reťazca zásadnou témou. Existuje aj niekoľko spôsobov obrátenia reťazca, z ktorých každý má inú logiku. Tento článok vám ukáže, ako správne obrátiť reťazec, aby ste použili niekoľko odlišných prístupov a úvah s alebo bez vyžadovania akýchkoľvek prednastavených funkcií. Kedykoľvek sa v konkrétnom jedinečnom vstupnom reťazci použije obrátenie reťazcovej techniky, text, ktorý by spotrebiteľ uviedol v konkrétnom poradí, sa úplne obráti. V nižšie uvedenom prípade boli použité rôzne alternatívy obrátenia reťazca s C.

Pri implementácii tejto príručky sme pracovali na systéme Linux Linux 20.04 nakonfigurovanom na Virtual Box. Pri práci na systéme Linux sme väčšinu našich inštalácií a dotazov robili na terminálovom plášti. Preto otvorte terminál pomocou klávesovej skratky Ctrl+Alt+T alebo ho vyhľadajte pomocou panela vyhľadávania aplikácií v oblasti Aktivita na pracovnej ploche Ubuntu. Váš systém je potrebné najskôr aktualizovať prostredníctvom výstižného dotazu na aktualizáciu. Na spustenie aktualizácie vás požiada o aktuálne heslo používateľa. Preto zadajte heslo a stlačte tlačidlo Enter.







$ sudo apt aktualizácia



Pretože používame programovací jazyk C na vypracovanie konceptu reverzných reťazcov v systéme Ubuntu 20.04, na svojom systéme Ubuntu by mal byť nainštalovaný kompilátor C. Preto sa uistite, že ste do svojho systému nainštalovali kompilátor GCC pomocou nižšie uvedeného dotazu.



$ sudo apt install gcc

Príklad 01: Použitie pre slučku

Po inštalácii a konfigurácii kompilátora GCC a aktualizácii balíka apt sa zmení na vytvorenie nového súboru. Tento súbor by mal byť typu C; preto pomocou príkazu touch vytvorte súbor new.c ako je uvedené nižšie. Tento súbor bude odteraz v našom kóde používaný počas implementácie programov s reverznými reťazcami.





$ touch nový.c

Teraz môžete tento súbor otvoriť na úpravu alebo kódovanie pomocou editora Nano, ktorý je vstavaný vo vašom systéme Ubuntu 20.04 Linux. Skúste preto postupovať podľa nižšie uvedených pokynov vo vašej schránke.



$ nano nové.c

Novovytvorený súbor typu C nový bol otvorený v programe GNU Nano Editor systému Ubuntu 20.04. Musíte doň napísať skript C, ako je znázornené na obrázku nižšie. Poďme tento kód podrobnejšie rozpracovať, aby ste ho lepšie pochopili. Na začiatku kódu sme zahrnuli dve knižnice. Knižnica stdio.h bola použitá na prevzatie vstupov a zobrazenie výstupov a druhá knižnica string.h bola použitá na použitie všetkých druhov reťazcov v našom kóde. Všetka práca na obrátení reťazca bude vykonaná metódou main () kódu C. Deklarovali sme reťazec typu znak str s veľkosťou 50. To znamená, že reťazec s viac ako 50 znakmi nemôže byť v tomto kóde bavený. Potom sme deklarovali dve premenné celočíselného typu. Premenná l bola použitá na zber dĺžky reťazca str a premenná I bude použitá ako inicializátor v slučke for. Potom sme pomocou príkazu printf vytlačili text na zadávací reťazec shellu, ktorý používateľovi povedal, aby pridal hodnotu do reťazcovej premennej. Na zadanie používateľa v čase spustenia a uloženie tejto hodnoty do reťazca str bola použitá metóda scanf (). Funkcia strlen () bola použitá na kontrolu dĺžky reťazca str, ktorý bol pridaný používateľom v čase spustenia, a jeho uloženie do premennej l '. Potom sme inicializovali slučku for, aby sme obrátili reťazec str. Môžete vidieť, že inicializátor I ‘berie hodnotu z premennej l na obrátenie smeru reťazca. Potom vytlačí znaky obratu reťazca reťazca jeden po druhom. V poslednej bola hlavná metóda ukončená. Tento súbor uložte pomocou Ctrl+S a ukončite ho pomocou Ctrl+X.

Teraz je čas skompilovať kód a skontrolovať jeho výstup. Preto bola kompilácia vykonaná nižšie uvedeným dotazom gcc s názvom súboru new.c.

$ gcc nové.c

Keď je kompilácia úspešná, znamená to, že v našom kóde nie je žiadna chyba. Spustime náš súbor a.out dotazom v shelli nasledovne:

$./do.von

Proces spustenia požiada používateľa, aby pridal reťazec. Pridali sme I-Am-Aqsa-Yasin a stlačili Enter. V nasledujúcom riadku môžete vidieť, že vracia opak reťazca.

Príklad 02: Použitie zámeny

V tomto prípade použijeme metódu swapping na obrátenie poradia reťazca. Preto znova otvorte súbor new.c pomocou nano editora nasledovne:

$ nano nové.c

Teraz bol súbor otvorený v editore GNU nano; musíme aktualizovať súbor kódu pomocou nižšie uvedeného skriptu na snímke obrazovky. Štandardný vstupný a výstupný hlavičkový súbor sme do nášho kódu vložili najskôr pomocou kľúčového slova #include. Definovali sme metódu Reverse () podľa použitia techniky výmeny. Inicializovali sme tri celočíselné premenné typu new, I a swap. Prvá slučka for sa používa na kontrolu, či je reťazec s prázdny alebo nie. Nasledujúca slučka for sa používa na iteráciu a v jej tele sme hodnoty prehodili pomocou nových a swap premenných. Stojí za zmienku, že obrátenie reťazca v dĺžke n trvá iba n/2 kôl. Po výmene reťazcov budete musieť znova zacykliť, aby ste ukázali obrátený reťazec, ktorý v našej aplikácii robíme pomocou tretieho cyklu for. Funkciu Reverse () je potrebné vyvolať z hlavného programu. V kontexte main () ste uviedli, aký výkon má váš softvér s printf. Potom ste pomocou príkazu scanf () získali vstup od používateľa a vyvolali ste metódu Reverse (). Teraz súbor znova uložte pomocou Ctrl+S a opustite editor nano pomocou skratky Ctrl+X a vráťte sa do terminálu.

Najprv skomprimujte kód pomocou dopytu gcc, ako je uvedené nižšie.

$ gcc nové.c

Teraz spustite súbor s kódom podľa rovnakých pokynov ./a.out.

$./do.von

Požiada vás o zadanie hodnoty reťazca. Pridali sme AqsaYasin a došlo k jeho obráteniu.

Príklad 03: Použitie rekurzie

V tomto prípade použijeme rekurziu na zvrátenie reťazca pridaného používateľom. Preto súbor znova otvorte.

$ nano nové.c

Tento program vytlačí Zadajte vetu: Potom sa použije metóda Reverse (). Počiatočné písmeno zadané používateľom sa uloží do c pomocou tejto metódy. Reverse () sa vykoná znova, ak je argument niečo iné ako n (nový riadok). Tento postup pokračuje, kým používateľ nestlačí kláves Enter. Kedykoľvek používateľ stlačí kláves Enter, metóda Reverse () vytlačí text v opačnom poradí. Uložte a zatvorte súbor.

Najprv skompilovajte kód a potom ho spustite pomocou predchádzajúcich príkazov nasledovne:

$ gcc nové.c

$./do.von

Môžete vidieť, že to vyžaduje vstup od používateľa ako celú reťazcovú vetu, a potom obrátiť poradie tejto vety.

Záver:

Nakoniec sme urobili tri príklady na spracovanie reverzného vstupu typu reťazca rôznymi metódami, napr. Pomocou cyklu for, pomocou rekurzie a swapu.