Kā apgriezt virkni C

How Reverse String C



Stīgu kodēšanā virkņu maiņa ir būtiska tēma. Ir arī vairākas virknes maiņas metodes, katrai no tām ir atšķirīga loģika. Šajā rakstā tiks parādīts, kā pareizi mainīt virkni, lai izmantotu vairākas atšķirīgas pieejas un argumentāciju ar iepriekš noteiktām funkcijām un bez tām. Ikreiz, kad virknes tehnikas apgriešana tiek izmantota konkrētā unikālā ievades virknē, teksts, ko patērētājs piegādātu noteiktā secībā, tiks pilnībā apgriezts. Zemāk esošajā piemērā ir izmantotas dažādas alternatīvas, lai mainītu virkni ar C.

Īstenojot šo rokasgrāmatu, mēs esam strādājuši pie Ubuntu 20.04 Linux sistēmas, kas konfigurēta Virtual Box. Strādājot pie Linux sistēmas, mēs lielāko daļu instalāciju un vaicājumu veicām termināla apvalkā. Tādējādi atveriet termināļa apvalku, izmantojot īsinājumtaustiņu Ctrl+Alt+T vai meklējiet to, izmantojot lietojumprogrammas meklēšanas joslu, kas atrodas Ubuntu darbvirsmas darbības apgabalā. Vispirms ir jāatjaunina sistēma, izmantojot apt update vaicājumu. Tas prasīs pašreizējo lietotāja paroli, lai palaistu atjauninājumu. Tāpēc pievienojiet paroli un nospiediet taustiņu Enter.







$ sudo apt atjauninājums



Tā kā mēs esam izmantojuši C programmēšanas valodu, lai izstrādātu virkņu maiņas jēdzienu Ubuntu 20.04 sistēmā, Ubuntu sistēmā vajadzētu būt instalētam C kompilatoram. Tāpēc noteikti instalējiet GCC kompilatoru savā sistēmā, izmantojot zemāk esošo vaicājumu.



$ sudo apt instalēt gcc

Piemērs 01: izmantošana for Loop

Pēc GCC kompilatora instalēšanas un konfigurēšanas un apt pakotnes atjaunināšanas tiek izveidots jauns fails. Šim failam jābūt C tipa; tāpēc izmantojiet pieskāriena komandu, lai izveidotu failu new.c, kā norādīts zemāk. Šis fails turpmāk tiks izmantots mūsu kodā reverso virkņu programmu ieviešanas laikā.





$ touch jauns.c

Tagad jūs varat atvērt šo failu rediģēšanai vai kodēšanai, izmantojot Nano redaktoru, kas ir iebūvēts jūsu Ubuntu 20.04 Linux sistēmā. Tāpēc, lai to izdarītu, izmēģiniet tālāk esošo instrukciju savā apvalkā.



$ nano jauns.c

Jaunizveidotais C tipa fails jauns ir atvērts Ubuntu 20.04 sistēmas GNU Nano redaktorā. Tajā jāraksta C skripts, kā parādīts zemāk esošajā ekrānuzņēmuma attēlā. Ļaujiet mums sīkāk izstrādāt šo kodu, lai jūs labāk izprastu. Koda sākumā mēs esam iekļāvuši divas bibliotēkas. Bibliotēka stdio.h ir izmantota, lai ievadītu un parādītu rezultātus, bet otra bibliotēkas virkne.h ir izmantota, lai mūsu kodā izmantotu visu veidu virknes. Viss virknes maiņas darbs tiks veikts ar C koda galveno () metodi. Mēs esam deklarējuši rakstzīmju tipa virkni str, kuras izmērs ir 50. Tas nozīmē, ka šajā kodā nevar iekļaut virkni ar vairāk nekā 50 rakstzīmēm. Pēc tam mēs esam deklarējuši divus veselu skaitļu tipa mainīgos. Mainīgais l ir izmantots virknes str garuma apkopošanai, un mainīgais I tiks izmantots kā cilpas inicializētājs. Tad mēs esam izmantojuši paziņojumu printf, lai izdrukātu tekstu uz čaulas Ievadiet virkni, norādot lietotājam pievienot vērtību virknes mainīgajam. Skenēšanas () metode tika izmantota, lai ievadītu lietotāju izpildes laikā un saglabātu šo vērtību virknes virknē. Funkcija strlen () ir izmantota, lai pārbaudītu virknes str garumu, ko lietotājs pievienojis izpildes laikā, un saglabātu to mainīgajā l ’. Tad mēs inicializējām for for, lai mainītu virknes str. Jūs varat redzēt, ka inicializators I ’ņem vērtību no mainīgā l, lai mainītu virknes virzienu. Tad tas viens pēc otra drukā virknes str rakstzīmes. Pēdējā gadījumā galvenā metode ir pabeigta. Saglabājiet šo failu, izmantojot Ctrl+S, un aizveriet to, izmantojot Ctrl+X.

Tagad ir pienācis laiks apkopot kodu un pārbaudīt tā izvadi. Tādējādi apkopošana tika veikta ar zemāk norādīto gcc vaicājumu ar faila nosaukumu new.c.

$ gcc jauns.c

Tā kā kompilācija kļūst veiksmīga, tas nozīmē, ka mūsu kodā nav kļūdu. Izpildīsim mūsu failu ar vaicājumu čaulā šādi:

$./uz.ārā

Izpildes process prasīs lietotājam pievienot virkni. Mēs esam pievienojuši I-Am-Aqsa-Yasin un nospieduši Enter. Jūs varat redzēt, ka nākamajā rindiņā tiek atgriezts virknes reverss.

Piemērs 02: Swapping izmantošana

Šajā piemērā mēs izmantosim mijmaiņas metodi, lai mainītu virknes secību. Tāpēc vēlreiz atveriet failu new.c, izmantojot nano redaktoru, šādi:

$ nano jauns.c

Tagad fails ir atvērts GNU nano redaktorā; mums ir jāatjaunina koda fails ar zemāk redzamo skriptu ekrānuzņēmumā. Vispirms savā kodā esam iekļāvuši standarta ievades un izvades galvenes failu, izmantojot atslēgvārdu #include. Mēs esam definējuši metodi Reverse () atbilstoši mijmaiņas tehnikas izmantošanai. Mēs esam inicializējuši trīs veselu skaitļu tipa mainīgos, jaunus, I un mijmaiņas. Pirmais cilpai tiek izmantots, lai pārbaudītu, vai virkne s ir tukša. Nākamais cilpai tiek izmantots iterācijai, un tās pamattekstā mēs esam apmainījuši vērtības, izmantojot jaunus un mijmaiņas mainīgos. Ir vērts atzīmēt, ka n garuma virknes maiņa prasa tikai n/2 kārtas. Kad virknes ir nomainītas, jums atkal būs jāveic cilpa, lai parādītu apgriezto virkni, ko mēs darām savā lietojumprogrammā, izmantojot trešo cilpai. Funkcija Reverse () jāizsauc no galvenās programmas iekšpuses. Jūs esat norādījis, ko jūsu programmatūra veic ar printf, main () kontekstā. Pēc tam jūs izmantojāt scanf (), lai saņemtu lietotāja ievadi, un izmantojāt metodi Reverse (). Tagad saglabājiet failu vēlreiz, izmantojot Ctrl+S, un atstājiet nano redaktoru, izmantojot īsinājumtaustiņu Ctrl+X un atgriezieties termināla apvalkā.

Vispirms apkopojiet kodu ar gcc vaicājumu, kā norādīts zemāk.

$ gcc jauns.c

Tagad izpildiet koda failu, izmantojot to pašu ./a.out instrukciju.

$./uz.ārā

Tas prasīs ievadīt virknes vērtību. Mēs esam pievienojuši AqsaYasin un ieguvuši tā reversu.

Piemērs 03: Rekursijas izmantošana

Šajā piemērā mēs izmantosim rekursiju, lai mainītu lietotāja pievienotu virkni. Tāpēc atveriet failu vēlreiz.

$ nano jauns.c

Šī programma izdrukā Ievadiet teikumu: Pēc tam tiek izmantota apgrieztā () metode. Lietotāja ievadītais sākotnējais burts tiek saglabāts c, izmantojot šo metodi. Reverss () tiek izpildīts vēlreiz, ja arguments ir kaut kas cits, nevis n (jauna rinda). Šī procedūra turpinās, līdz lietotājs nospiež taustiņu Enter. Ikreiz, kad lietotājs nospiež taustiņu Enter, metode Reverse () drukā tekstu apgrieztā secībā. Saglabājiet un aizveriet failu.

Vispirms apkopojiet kodu un pēc tam palaidiet to, izmantojot iepriekšējās komandas šādi:

$ gcc jauns.c

$./uz.ārā

Jūs varat redzēt, ka no lietotāja ir jāievada viss virknes teikums un pēc tam jāmaina šī teikuma secība.

Secinājums:

Visbeidzot, mēs esam veikuši trīs piemērus, lai izstrādātu virknes tipa ievades mainīšanu ar dažādām metodēm, piemēram, izmantojot cilpu, izmantojot rekursiju un izmantojot mijmaiņas.