Jak převrátit řetězec v C

How Reverse String C



V kódování řetězců je obrácení řetězce zásadní téma. Existuje také několik metod pro obrácení řetězce, z nichž každý má jinou logiku. Tento článek vám ukáže, jak správně obrátit řetězec tak, aby používal několik odlišných přístupů a uvažování s a bez vyžadování přednastavených funkcí. Kdykoli je obrácení řetězce použito v konkrétním jedinečném vstupním řetězci, text, který by spotřebitel dodal v konkrétním pořadí, bude zcela obrácen. V níže uvedeném případě byly použity různé alternativy obrácení řetězce s C.

Při implementaci této příručky jsme pracovali na systému Linux Ubuntu 20.04 nakonfigurovaném na Virtual Boxu. Při práci na systému Linux jsme většinu instalací a dotazů prováděli na terminálu. Proto otevřete terminál pomocí klávesové zkratky Ctrl+Alt+T nebo jej vyhledejte pomocí vyhledávacího panelu aplikace v oblasti Aktivita na ploše Ubuntu. Nejprve je nutné aktualizovat váš systém pomocí dotazu apt update. Ke spuštění aktualizace vás požádá o aktuální heslo uživatele. Proto přidejte heslo a stiskněte tlačítko Enter.







$ sudo apt update



Jelikož jsme používali programovací jazyk C k vypracování konceptu obrácení řetězců v systému Ubuntu 20.04, jeden by měl mít v systému Ubuntu nainstalován kompilátor C. Proto se ujistěte, že na váš systém nainstalujete kompilátor GCC pomocí níže uvedeného dotazu.



$ sudo apt install gcc

Příklad 01: Použití pro smyčku

Po instalaci a konfiguraci kompilátoru GCC a aktualizaci apt balíčku se vytvoří nový soubor. Tento soubor by měl být typu C; proto pomocí příkazu touch vytvořte soubor new.c, jak je uvedeno níže. Tento soubor bude od nynějška používán v našem kódu při implementaci programů zpětných řetězců.





$ touch nový.C

Nyní můžete tento soubor otevřít pro úpravy nebo kódování pomocí editoru Nano, který je integrován ve vašem systému Ubuntu 20.04 Linux. Vyzkoušejte proto níže uvedené pokyny ve vašem shellu.



$ nano novinka.C

Nově vytvořený soubor typu C new byl otevřen v GNU Nano Editoru systému Ubuntu 20.04. Musíte do něj napsat C skript, jak je uvedeno na obrázku níže. Pro lepší pochopení tento kód rozpracujeme. Na začátku kódu jsme zahrnuli dvě knihovny. Knihovna stdio.h byla použita k převzetí vstupů a zobrazení výstupů a druhá knihovna string.h byla použita k použití všech druhů řetězců v našem kódu. Veškerá práce na obrácení řetězce bude provedena metodou main () kódu C. Deklarovali jsme řetězec typu znak str o velikosti 50. To znamená, že řetězec s více než 50 znaky nelze v tomto kódu bavit. Poté jsme deklarovali dvě proměnné celočíselného typu. Proměnná l byla použita pro sběr délky řetězce str a proměnná I bude použita jako inicializátor ve smyčce for. Potom jsme použili příkaz printf k vytištění textu na řetězec Enter, který říká uživateli, aby přidal hodnotu do proměnné řetězce. K zadání uživatele za běhu a uložení této hodnoty do řetězce str byla použita metoda scanf (). Funkce strlen () byla použita ke kontrole délky řetězce str, který byl přidán uživatelem za běhu, a jeho uložení do proměnné l ’. Poté jsme inicializovali smyčku for, abychom obrátili řetězec str. Můžete vidět, že inicializátor I ‘bere hodnotu z proměnné l, aby změnil směr řetězce. Poté vytiskne znaky řetězce str jeden po druhém obrácení. V posledním byla hlavní metoda ukončena. Uložte tento soubor pomocí Ctrl+S a ukončete jej pomocí Ctrl+X.

Nyní je čas kompilovat kód a zkontrolovat jeho výstup. Proto byla kompilace provedena níže uvedeným gcc dotazem s názvem souboru new.c.

$ gcc novinka.C

Když je kompilace úspěšná, znamená to, že v našem kódu není žádná chyba. Spusťme náš soubor pomocí a.out dotazu ve shellu následovně:

$./na.ven

Proces provádění požádá uživatele o přidání řetězce. Přidali jsme I-Am-Aqsa-Yasin a stiskli Enter. Můžete vidět, že vrací zadní část řetězce na následujícím řádku.

Příklad 02: Použití prohození

V tomto příkladu použijeme metodu swapping k obrácení pořadí řetězce. Otevřete tedy soubor new.c ještě jednou pomocí nano editoru následovně:

$ nano novinka.C

Nyní byl soubor otevřen v editoru GNU nano; potřebujeme aktualizovat soubor kódu pomocí níže uvedeného skriptu na snímku obrazovky. Do našeho kódu jsme zahrnuli standardní vstupní a výstupní hlavičkový soubor nejprve pomocí klíčového slova #include. Definovali jsme metodu Reverse () podle použití techniky swapování. Inicializovali jsme tři celočíselné proměnné typu new, I a swap. První smyčka for slouží ke kontrole, zda je řetězec s prázdný nebo ne. K opakování slouží smyčka next for a v jejím těle jsme hodnoty prohodili pomocí nových a odkládacích proměnných. Stojí za zmínku, že obrácení řetězce o délce n trvá jen n/2 kol. Jakmile jsou řetězce zaměněny, budete muset znovu smyčku zobrazit obrácený řetězec, což v naší aplikaci provádíme pomocí třetí smyčky for. Funkce Reverse () musí být vyvolána z hlavního programu. Uváděli jste, jaký výkon má váš software s printf v kontextu main (). Poté jste použili scanf () k získání vstupu uživatele a vyvolali metodu Reverse (). Nyní soubor znovu uložte pomocí Ctrl+S a opusťte editor nano pomocí klávesové zkratky Ctrl+X a vraťte se do terminálu.

Zkompilujte kód nejprve pomocí gcc dotazu, jak je uvedeno níže.

$ gcc novinka.C

Nyní spusťte soubor kódu pomocí stejné instrukce ./a.out.

$./na.ven

Požádá vás o zadání hodnoty řetězce. Přidali jsme AqsaYasin a dostali jsme jeho reverz.

Příklad 03: Použití rekurze

V tomto příkladu použijeme rekurzi k obrácení řetězce přidaného uživatelem. Otevřete tedy soubor znovu.

$ nano novinka.C

Tento program tiskne Zadejte větu: Poté se použije metoda Reverse (). Počáteční písmeno zadané uživatelem je uloženo v c pomocí této metody. Reverse () se spustí znovu, pokud je argumentem něco jiného než n (nový řádek). Tento postup pokračuje, dokud uživatel nestiskne klávesu Enter. Kdykoli uživatel stiskne Enter, metoda Reverse () vytiskne text v opačném pořadí. Uložte a zavřete soubor.

Nejprve zkompilujte kód a poté jej spusťte pomocí předchozích příkazů následujícím způsobem:

$ gcc novinka.C

$./na.ven

Můžete vidět, že to vyžaduje vstup od uživatele jako celou větu řetězce a pak obrátit pořadí této věty.

Závěr:

Nakonec jsme udělali tři příklady, abychom zpracovali obrácení vstupu typu řetězce různými metodami, např. Pomocí smyčky for, rekurze a swap.