Hoe een snaar in C . om te keren

How Reverse String C



Bij het coderen van strings is het omkeren van strings een cruciaal onderwerp. Er zijn ook verschillende methoden om een ​​string om te keren, die elk een andere logica hebben. Dit artikel laat u zien hoe u een string op de juiste manier kunt omkeren om verschillende verschillende benaderingen en redeneringen te gebruiken, met en zonder vooraf ingestelde functies. Telkens wanneer de omkering van een stringtechniek wordt toegepast in een bepaalde unieke invoerstring, wordt de tekst die een consument in een bepaalde volgorde zou aanleveren volledig omgekeerd. In het onderstaande voorbeeld zijn verschillende alternatieven gebruikt voor het omkeren van een string met C.

Bij het implementeren van deze handleiding hebben we gewerkt aan het Ubuntu 20.04 Linux-systeem geconfigureerd op Virtual Box. Terwijl we aan een Linux-systeem werkten, deden we de meeste van onze installaties en query's op de terminal-shell. Open daarom de terminalshell met een sneltoets Ctrl+Alt+T of zoek het via een zoekbalk voor toepassingen onder het activiteitengebied van het Ubuntu-bureaublad. Het is noodzakelijk om uw systeem eerst bij te werken via de apt update-query. Het zal u om het huidige gebruikerswachtwoord vragen om de update uit te voeren. Voeg daarom een ​​wachtwoord toe en druk op de Enter-knop.







$ sudo apt-update



Omdat we de C-programmeertaal hebben gebruikt om het concept van het omkeren van strings in het Ubuntu 20.04-systeem uit te werken, zou men een C-compiler op hun Ubuntu-systeem moeten hebben geïnstalleerd. Zorg er daarom voor dat u de GCC-compiler op uw systeem installeert via de onderstaande vraag.



$ sudo apt install gcc

Voorbeeld 01: For Loop gebruiken

Na de installatie en configuratie van de GCC-compiler en het bijwerken van het apt-pakket, verandert het in het maken van een nieuw bestand. Dit bestand moet van het type C zijn; gebruik daarom de aanraakopdracht om een ​​bestand new.c te maken, zoals hieronder. Dit bestand zal vanaf nu in onze code worden gebruikt tijdens de implementatie van reverse string-programma's.





$ raak nieuw aan.C

Nu kunt u dit bestand openen voor bewerking of codering door een Nano-editor die is ingebouwd in uw Ubuntu 20.04 Linux-systeem. Probeer daarom de onderstaande instructie in uw shell om dit te doen.



$ nano nieuw.C

Het nieuw gemaakte C-type bestand nieuw is geopend in de GNU Nano Editor van het Ubuntu 20.04-systeem. Je moet er een C-script in schrijven, zoals weergegeven in de onderstaande schermafbeelding. Laten we deze code nader toelichten voor een beter begrip. Aan het begin van een code hebben we twee bibliotheken opgenomen. De bibliotheek stdio.h is gebruikt om invoer te nemen en de uitvoer weer te geven, en de andere bibliotheek string.h is gebruikt om allerlei soorten tekenreeksen in onze code te gebruiken. Al het werk van het omkeren van een string wordt gedaan in de methode main() van een C-code. We hebben een tekenreeks str met grootte 50 gedeclareerd. Dit betekent dat een tekenreeks met meer dan 50 tekens niet in deze code kan worden gebruikt. Daarna hebben we twee variabelen van het type integer gedeclareerd. De variabele l is gebruikt voor het verzamelen van de lengte van een string str en de variabele I zal worden gebruikt als een initialisator in de for-lus. Vervolgens hebben we een printf-statement gebruikt om een ​​tekst op de shell Enter string af te drukken, waarbij een gebruiker wordt gevraagd een waarde toe te voegen aan een stringvariabele. De methode scanf() is gebruikt om de gebruiker tijdens runtime in te voeren en die waarde op te slaan in een string str. De functie strlen() is gebruikt om de lengte te controleren van een string str die tijdens runtime door een gebruiker is toegevoegd en deze op te slaan in een variabele l'. Vervolgens hebben we een for-lus geïnitialiseerd om de string str om te keren. Je kunt zien dat de initialisator I' de waarde van een variabele l neemt om de richting van een string om te keren. Vervolgens drukt het de karakters van een string str' één voor één om. In de laatste is de hoofdmethode beëindigd. Sla dit bestand op met Ctrl+S en sluit het af via Ctrl+X.

Nu is het tijd om de code te compileren en de uitvoer te controleren. Daarom is de compilatie gedaan door de hieronder vermelde gcc-query met de naam van een bestand new.c.

$ gcc nieuw.C

Naarmate de compilatie succesvol wordt, betekent dit dat er geen fout in onze code zit. Laten we ons bestand als volgt uitvoeren door a.out-query in de shell:

$./tot.uit

Het uitvoeringsproces zal de gebruiker vragen om een ​​string toe te voegen. We hebben I-Am-Aqsa-Yasin toegevoegd en op Enter gedrukt. Je kunt zien dat het het omgekeerde van een string retourneert op de volgende regel.

Voorbeeld 02: Swappen gebruiken

In dit voorbeeld gebruiken we de swapping-methode om de volgorde van een string om te keren. Open daarom het bestand new.c nogmaals met de nano-editor als volgt:

$ nano nieuw.C

Nu is het bestand geopend in de GNU nano-editor; we moeten het codebestand bijwerken met het hieronder getoonde script in de schermafbeelding. We hebben eerst het standaard invoer- en uitvoerheaderbestand in onze code opgenomen met het trefwoord #include. We hebben een methode Reverse() gedefinieerd volgens het gebruik van de swaptechniek. We hebben drie variabelen van het type integer, new, I en swap, geïnitialiseerd. De eerste for-lus wordt gebruikt om te controleren of de string s leeg is of niet. De volgende for-lus wordt gebruikt voor iteratie en in zijn hoofdtekst hebben we de waarden verwisseld met nieuwe en swap-variabelen. Het is vermeldenswaard dat het omkeren van een string van n-lengte slechts n/2 ronden kost. Nadat strings zijn verwisseld, moet je opnieuw een lus maken om de omgekeerde string weer te geven, wat we in onze applicatie doen met een derde for-lus. De functie Reverse() moet worden aangeroepen vanuit het interne hoofdprogramma. U hebt aangegeven wat uw software doet met printf in de context van main(). Daarna heb je scanf() gebruikt om gebruikersinvoer te krijgen en de methode Reverse() aangeroepen. Sla het bestand nu opnieuw op met Ctrl+S en verlaat de nano-editor met de sneltoets Ctrl+X en keer terug naar de terminal-shell.

Compileer eerst de code door een gcc-query zoals hieronder.

$ gcc nieuw.C

Voer nu het codebestand uit met dezelfde ./a.out-instructie.

$./tot.uit

Het zal u vragen om de tekenreekswaarde in te voeren. We hebben AqsaYasin toegevoegd en het omgekeerde gekregen.

Voorbeeld 03: Recursie gebruiken

In dit voorbeeld gebruiken we recursie om een ​​tekenreeks die door een gebruiker is toegevoegd, om te keren. Open daarom het bestand opnieuw.

$ nano nieuw.C

Dit programma drukt af. Voer een zin in: Er wordt dan een methode Reverse() gebruikt. De eerste letter die door een gebruiker is ingevoerd, wordt via deze methode opgeslagen in c. Reverse() wordt opnieuw uitgevoerd als het argument iets anders is dan (nieuwe regel). Deze procedure gaat door totdat de gebruiker op de Enter-toets drukt. Telkens wanneer de gebruiker op enter drukt, drukt de methode Reverse() de tekst in omgekeerde volgorde af. Sla het bestand op en sluit het.

Compileer eerst de code en voer deze vervolgens als volgt uit met behulp van de vorige opdrachten:

$ gcc nieuw.C

$./tot.uit

Je kunt zien dat het invoer van een gebruiker nodig heeft als een hele tekenreekszin en vervolgens de volgorde van die zin omkeert.

Conclusie:

Ten slotte hebben we drie voorbeelden gegeven om uit te weiden over het omkeren van een invoer van het stringtype met verschillende methoden, bijvoorbeeld het gebruik van een for-lus, het gebruik van recursie en het gebruik van swap.