Cum se inversează un șir în C

How Reverse String C



În codarea șirurilor, inversarea șirurilor este un subiect crucial. Există, de asemenea, mai multe metode pentru inversarea unui șir, fiecare dintre ele având o logică diferită. Acest articol vă va arăta cum să inversați corect un șir pentru a utiliza mai multe abordări și raționamente distincte cu și fără a necesita funcții prestabilite. Ori de câte ori inversarea unei tehnici de șir este aplicată într-un anumit șir unic de intrare, textul pe care un consumator l-ar furniza într-o anumită ordine va fi complet inversat. În cazul de mai jos, au fost folosite diferite alternative de inversare a unui șir cu C.

La implementarea acestui ghid, am lucrat la sistemul Ubuntu 20.04 Linux configurat pe Virtual Box. În timp ce lucram la un sistem Linux, obișnuiam să facem majoritatea instalărilor și interogărilor noastre pe shell-ul terminalului. Prin urmare, deschideți shell-ul terminalului printr-o comandă rapidă Ctrl + Alt + T sau căutați-l printr-o bară de căutare a aplicației din zona de activitate a desktopului Ubuntu. Este necesar să vă actualizați sistemul mai întâi prin interogarea apt update. Vă va cere parola de utilizator curentă pentru a rula actualizarea. Prin urmare, adăugați o parolă și apăsați butonul Enter.







$ sudo apt actualizare



Deoarece am folosit limbajul de programare C pentru a elabora conceptul de inversare a șirurilor în sistemul Ubuntu 20.04, ar trebui să aveți un compilator C instalat pe sistemul lor Ubuntu. Prin urmare, asigurați-vă că instalați compilatorul GCC pe sistemul dvs. prin interogarea de mai jos.



$ sudo apt install gcc

Exemplul 01: Utilizarea For Loop

După instalarea și configurarea compilatorului GCC și actualizarea pachetului apt, se transformă în crearea unui fișier nou. Acest fișier ar trebui să fie de tip C; prin urmare, utilizați comanda tactilă pentru a crea un fișier new.c ca mai jos. Acest fișier va fi folosit în codul nostru de acum înainte în timpul implementării programelor de șir invers.





$ atinge nou.c

Acum puteți deschide acest fișier pentru editare sau codificare de către un editor Nano care a fost încorporat în sistemul dvs. Ubuntu 20.04 Linux. Prin urmare, încercați instrucțiunile de mai jos din shell pentru a face acest lucru.



$ nano nou.c

Fișierul nou creat de tip C nou a fost deschis în editorul GNU Nano al sistemului Ubuntu 20.04. Trebuie să scrieți un script C în el, așa cum este prezentat în imaginea de captură de ecran de mai jos. Permiteți-ne să elaborăm acest cod pentru o mai bună înțelegere. La începutul unui cod, am inclus două biblioteci. Biblioteca stdio.h a fost utilizată pentru a prelua intrări și a afișa ieșirile, iar cealaltă bibliotecă string.h a fost utilizată pentru a utiliza tot felul de șiruri în codul nostru. Toată munca de inversare a unui șir se va face în metoda main () a unui cod C. Am declarat un șir de tip caractere str având dimensiunea 50. Aceasta înseamnă că un șir cu mai mult de 50 de caractere nu poate fi distrat în acest cod. După aceea, am declarat două variabile de tip întreg. Variabila l a fost utilizată pentru colectarea lungimii unui șir de caractere și variabila I va fi utilizată ca inițializator în buclă. Apoi am folosit o instrucțiune printf pentru a imprima un text pe shell Enter șir, spunând unui utilizator să adauge o valoare la o variabilă șir. Metoda scanf () a fost utilizată pentru a introduce utilizatorul în timpul rulării și a salva acea valoare într-un șir de caractere. Funcția strlen () a fost utilizată pentru a verifica lungimea unui șir str care a fost adăugat de un utilizator în timpul rulării și a-l salva într-o variabilă l ’. Apoi am inițializat o buclă for pentru a inversa șirul str. Puteți vedea că inițializatorul I ’ia valoarea dintr-o variabilă l pentru a inversa direcția unui șir. Apoi tipărește caracterele unui șir de caractere inversarea pe rând. În ultima, metoda principală a fost încheiată. Salvați acest fișier folosind Ctrl + S și părăsiți-l prin Ctrl + X.

Acum este timpul să compilați codul și să verificați rezultatul acestuia. Prin urmare, compilarea a fost făcută prin interogarea gcc menționată mai jos cu numele unui fișier new.c.

$ gcc nou.c

Deoarece compilarea are succes, înseamnă că nu există nicio eroare în codul nostru. Să executăm fișierul nostru printr-o interogare a.out în shell, după cum urmează:

$./la.afară

Procesul de execuție va cere utilizatorului să adauge un șir. Am adăugat I-Am-Aqsa-Yasin și am apăsat Enter. Puteți vedea că returnează inversul unui șir la următoarea linie.

Exemplul 02: Utilizarea Swapping

În acest exemplu, vom folosi metoda swapping pentru a inversa ordinea unui șir. Prin urmare, deschideți din nou fișierul new.c folosind editorul nano după cum urmează:

$ nano nou.c

Acum fișierul a fost deschis în editorul nano GNU; trebuie să actualizăm fișierul de cod cu scriptul prezentat mai jos în captura de ecran. Am inclus fișierul antet standard de intrare și de ieșire în codul nostru folosind mai întâi un cuvânt cheie #include. Am definit o metodă Reverse () conform utilizării tehnicii de schimbare. Am inițializat trei variabile de tip întreg noi, I și swap. Prima buclă for este utilizată pentru a verifica dacă șirul s este gol sau nu. Următoarea buclă este utilizată pentru iterație și, în corpul său, am schimbat valorile folosind variabile noi și swap. Merită remarcat faptul că inversarea unui șir de lungime n necesită doar n / 2 runde. După ce șirurile au fost schimbate, va trebui să faceți din nou o buclă pentru a afișa șirul inversat, ceea ce facem în cadrul aplicației noastre folosind o a treia buclă pentru. Funcția Reverse () trebuie apelată din programul principal din interior. Ați declarat ce funcționează software-ul dvs. cu printf în contextul main (). După aceea, ați folosit scanf () pentru a obține intrarea utilizatorului și ați invocat metoda Reverse (). Acum salvați din nou fișierul folosind Ctrl + S și lăsați editorul nano prin comanda rapidă Ctrl + X și reveniți la shell-ul terminalului.

Compilați mai întâi codul printr-o interogare gcc după cum urmează.

$ gcc nou.c

Acum executați fișierul de cod utilizând aceeași instrucțiune ./a.out.

$./la.afară

Vă va cere să introduceți valoarea șirului. Am adăugat AqsaYasin și am obținut inversul.

Exemplul 03: Utilizarea recursiunii

În acest exemplu, vom folosi recursivitatea pentru a inversa un șir adăugat de un utilizator. Prin urmare, deschideți din nou fișierul.

$ nano nou.c

Acest program tipărește Introduceți o propoziție: Se utilizează apoi o metodă Reverse (). Litera inițială introdusă de un utilizator este salvată în c prin această metodă. Reverse () este executat din nou dacă argumentul este altceva decât n (linie nouă). Această procedură continuă până când utilizatorul apasă tasta Enter. Ori de câte ori utilizatorul apasă Enter, metoda Reverse () tipărește textul în ordine inversă. Salvați și închideți fișierul.

Compilați mai întâi codul și apoi rulați-l folosind comenzile anterioare după cum urmează:

$ gcc nou.c

$./la.afară

Puteți vedea că necesită intrări de la un utilizator ca o propoziție de șir întreg și apoi inversează ordinea acelei propoziții.

Concluzie:

În cele din urmă, am făcut trei exemple pentru a detalia inversarea unei intrări de tip șir cu diferite metode, de exemplu, folosind bucla for, folosind recursivitate și folosind swap.