Hogyan lehet fordítani egy karakterláncot C -ben

How Reverse String C



A karakterlánc -kódolásban a karakterlánc -megfordítás kulcsfontosságú téma. A karakterlánc visszafordítására több módszer is létezik, amelyek mindegyike más logikával rendelkezik. Ez a cikk megmutatja, hogyan lehet megfelelően visszafordítani egy karakterláncot, hogy több különböző megközelítést és érvelést használjon, előre beállított funkciók nélkül. Amikor egy karakterlánc -technika megfordítását alkalmazzák egy adott egyedi beviteli karakterláncban, a fogyasztó által meghatározott sorrendben megadott szöveg teljesen megfordul. Az alábbi példában különböző alternatívákat alkalmaztak a karakterlánc C -vel történő visszafordítására.

Az útmutató végrehajtása során a Virtual Boxon konfigurált Ubuntu 20.04 Linux rendszeren dolgoztunk. Miközben Linux rendszeren dolgoztunk, a legtöbb telepítést és lekérdezést a terminálhéjon végeztük. Ezért nyissa meg a terminálhéjat a Ctrl+Alt+T billentyűparanccsal, vagy keressen rá az alkalmazás keresősávján az Ubuntu asztal Tevékenység területén. Először frissítenie kell a rendszert az apt update lekérdezésen keresztül. A frissítés futtatásához megkéri az aktuális felhasználói jelszót. Ezért adjon hozzá jelszót, és nyomja meg az Enter gombot.







$ sudo apt frissítés



Mivel a C programozási nyelvet használtuk a karakterláncok megfordításának koncepciójának kidolgozására az Ubuntu 20.04 rendszerben, telepíteni kell egy C fordítót az Ubuntu rendszerükbe. Ezért feltétlenül telepítse a GCC fordítót a rendszerére az alábbi lekérdezésen keresztül.



$ sudo apt install gcc

Példa 01: A ciklus használata

A GCC fordító telepítése és konfigurálása, valamint az apt csomag frissítése után új fájl jön létre. Ennek a fájlnak C típusúnak kell lennie; ezért az érintésparanccsal hozzon létre egy új fájlt.c az alábbiak szerint. Ezt a fájlt használjuk kódunkban ezentúl a fordított karakterláncú programok végrehajtása során.





$ touch new.c

Most megnyithatja ezt a fájlt szerkesztésre vagy kódolásra egy Ubuntu 20.04 Linux rendszerbe beépített Nano-szerkesztővel. Ezért próbálja meg az alábbi utasítást a héjában.



$ nano új.c

Az újonnan létrehozott új C típusú fájlt megnyitották az Ubuntu 20.04 rendszer GNU Nano szerkesztőjében. C -szkriptet kell írnia, ahogy az alábbi képernyőképen látható. Részletezzük ezt a kódot a jobb megértés érdekében. Egy kód elején két könyvtárat szerepeltettünk. Az stdio.h könyvtárat használtuk a bemenetek felvételére és a kimenetek megjelenítésére, a másik könyvtár string.h -t pedig mindenféle karakterlánc használatára. A karakterlánc megfordításával kapcsolatos összes munka a C kód main () metódusában történik. 50 -es karakter típusú karakterláncot deklaráltunk. Ez azt jelenti, hogy az 50 karakternél hosszabb karakterlánc nem használható ebben a kódban. Ezt követően két egész típusú változót deklaráltunk. Az l változót egy str karakterlánc hosszának összegyűjtésére használtuk, és az I változót a ciklus inicializálójaként fogjuk használni. Ezután a printf utasítással szöveget nyomtattunk az Enter karakterlánc héjjára, és azt mondtuk a felhasználónak, hogy adjon hozzá értéket egy karakterlánc változóhoz. A scanf () metódust használtuk a felhasználó futási időben történő beviteléhez, és az érték mentéséhez egy karakterláncba. Az strlen () függvénnyel ellenőriztük a karakterlánc hosszait, amelyet a felhasználó futás közben hozzáadott, és elmentette az l ’változóba. Ezután inicializáltuk a for ciklust, hogy megfordítsuk a str karakterláncot. Látható, hogy az I ’inicializáló az l változótól veszi az értéket, hogy megfordítsa a karakterlánc irányát. Ezután sorban kinyomtatja a karakterlánc str 'karaktereit. Az utolsó, a fő módszer véget ért. Mentse ezt a fájlt a Ctrl+S billentyűkombinációval, és lépjen ki a Ctrl+X billentyűkombinációval.

Most itt az ideje, hogy összeállítsa a kódot, és ellenőrizze a kimenetét. Ezért az összeállítást az alábbiakban megadott gcc lekérdezés végezte el egy új fájl nevével. C.

$ gcc új.c

Mivel a fordítás sikeres lesz, ez azt jelenti, hogy nincs hiba a kódunkban. Futtassuk a fájlunkat a héjban levő a.out lekérdezéssel az alábbiak szerint:

$./nak nek.ki

A végrehajtási folyamat felkéri a felhasználót, hogy adjon hozzá egy karakterláncot. Hozzáadtuk az I-Am-Aqsa-Yasin-t, és megnyomtuk az Enter billentyűt. Láthatjuk, hogy a karakterlánc fordítottját adja vissza a következő sorban.

Példa 02: Csere használata

Ebben a példában a csere módszert fogjuk használni a karakterlánc sorrendjének megfordítására. Ezért nyissa meg újra a new.c fájlt a nano szerkesztővel az alábbiak szerint:

$ nano új.c

Most a fájl megnyílt a GNU nano szerkesztőben; frissítenünk kell a kódfájlt a képernyőképen látható alábbi szkripttel. A szabványos bemeneti és kimeneti fejlécfájlt először beillesztettük kódunkba a #include kulcsszó használatával. A fordított () módszert definiáltuk a csere technika használatának megfelelően. Inicializáltunk három egész típusú változót: új, I és swap. Az első ciklus ellenőrzi, hogy az s karakterlánc üres -e vagy sem. A következő for ciklus iterációra szolgál, és a törzsében az értékeket felcseréltük új és swap változók használatával. Érdemes megjegyezni, hogy egy n hosszúságú karakterlánc visszafordítása csak n/2 kört vesz igénybe. Miután a karakterláncokat felcseréltük, ismét ciklusban kell megjelenítenie a fordított karakterláncot, amit az alkalmazásunkon belül a harmadik ciklus segítségével végezünk. A Reverse () függvényt a belsõ fõprogramból kell meghívni. Megállapította, hogy a szoftvere mit hajt végre a printf programmal a main () kontextusában. Ezt követően a scanf () függvénnyel szerezte be a felhasználói adatokat, és meghívta a Reverse () metódust. Most mentse el újra a fájlt a Ctrl+S billentyűkombinációval, és hagyja el a nano -szerkesztőt a Ctrl+X billentyűparanccsal, és térjen vissza a terminálhéjhoz.

Először fordítsa le a kódot egy gcc lekérdezéssel az alábbiak szerint.

$ gcc új.c

Most hajtsa végre a kódfájlt ugyanazzal a ./a.out utasítással.

$./nak nek.ki

Megkéri, hogy adja meg a karakterlánc értékét. Hozzáadtuk az AqsaYasin -t, és megfordítottuk.

Példa 03: Rekurzió használata

Ebben a példában rekurziót használunk a felhasználó által hozzáadott karakterlánc visszafordítására. Ezért nyissa meg újra a fájlt.

$ nano új.c

Ez a program kinyomtatja Írjon be egy mondatot: Ezután fordított () metódust használ. A felhasználó által begépelt kezdőbetű ezzel a módszerrel c -be kerül. A fordított () újra végrehajtódik, ha az argumentum valami más, mint n (újsor). Ez az eljárás addig folytatódik, amíg a felhasználó le nem nyomja az Enter billentyűt. Amikor a felhasználó megnyomja az enter billentyűt, a Fordított () módszer fordított sorrendben nyomtatja ki a szöveget. Mentse és zárja be a fájlt.

Először fordítsa le a kódot, majd futtassa az előző parancsok használatával az alábbiak szerint:

$ gcc új.c

$./nak nek.ki

Láthatja, hogy a felhasználó egy teljes karakterlánc -mondatként vesz részt a bemeneten, majd megfordítja a mondat sorrendjét.

Következtetés:

Végül három példát dolgoztunk fel annak érdekében, hogy kidolgozzuk a karakterlánc típusú bemenet visszafordítását különböző módszerekkel, például a ciklus használatával, a rekurzió használatával és a csere használatával.