Com invertir una cadena en Do

How Reverse String C



En la codificació de cadenes, la inversió de cadenes és un tema crucial. També hi ha diversos mètodes per invertir una cadena, cadascun dels quals té una lògica diferent. Aquest article us mostrarà com invertir correctament una cadena per utilitzar diversos enfocaments i raonaments diferents amb i sense necessitat de cap funció predeterminada. Sempre que s'aplica la inversió d'una tècnica de cadena en una cadena d'entrada única particular, el text que un consumidor subministraria en un ordre específic s'invertirà completament. A la instància inferior, s’han emprat diferents alternatives per invertir una cadena amb C.

En implementar aquesta guia, hem estat treballant en el sistema Ubuntu 20.04 Linux configurat a Virtual Box. Mentre treballàvem en un sistema Linux, solíem fer la majoria de les nostres instal·lacions i consultes a l'intèrpret d'ordres del terminal. Per tant, obriu l’intèrpret d’ordres del terminal mitjançant una drecera Ctrl + Alt + T o cerqueu-la mitjançant una barra de cerca d’aplicacions a la zona Activitat de l’escriptori Ubuntu. Cal actualitzar el vostre sistema primer mitjançant la consulta d'actualització apt. Us demanarà la contrasenya d’usuari actual per executar l’actualització. Per tant, afegiu una contrasenya i premeu el botó Retorn.







$ sudo apt actualització



Com hem estat utilitzant el llenguatge de programació C per elaborar el concepte d'inversió de cadenes al sistema Ubuntu 20.04, s'hauria de tenir instal·lat un compilador C al seu sistema Ubuntu. Per tant, assegureu-vos d’instal·lar el compilador GCC al vostre sistema mitjançant la consulta següent.



$ sudo apt install gcc

Exemple 01: Ús de Loop

Després d’instal·lar i configurar el compilador GCC i actualitzar el paquet apt, es crea un fitxer nou. Aquest fitxer ha de ser de tipus C; per tant, utilitzeu l'ordre tàctil per crear un fitxer new.c com es mostra a continuació. Aquest fitxer s'utilitzarà al nostre codi a partir d'ara durant la implementació de programes de cadena inversa.





$ touch new.c

Ara podeu obrir aquest fitxer per editar-lo o codificar-lo mitjançant un editor Nano integrat al vostre sistema Ubuntu 20.04 Linux. Per tant, proveu la instrucció següent al vostre intèrpret d’ordres per fer-ho.



$ nano nou.c

El nou fitxer de tipus C nou s'ha obert a l'editor GNU Nano del sistema Ubuntu 20.04. Hi heu d’escriure un script C, tal com es mostra a la imatge de la imatge inferior. Expliquem aquest codi per a una millor comprensió. Al començament d’un codi, hem inclòs dues biblioteques. La biblioteca stdio.h s’ha utilitzat per prendre entrades i mostrar les sortides, i l’altra biblioteca string.h s’ha utilitzat per utilitzar tot tipus de cadenes al nostre codi. Tot el treball d’inversió d’una cadena es farà amb el mètode main () d’un codi C. Hem declarat una cadena de tipus de caràcter str de mida 50. Això significa que una cadena de més de 50 caràcters no es pot entretenir en aquest codi. Després d'això, hem declarat dues variables de tipus enter. La variable l s'ha utilitzat per recollir la longitud d'una cadena de cadenes i, la variable I s'utilitzarà com a inicialitzador en bucle for. A continuació, hem utilitzat una declaració printf per imprimir un text a l'intèrpret d'ordres Introduïu una cadena, dient a un usuari que afegeixi un valor a una variable de cadena. El mètode scanf () s'ha utilitzat per introduir l'usuari en temps d'execució i desar aquest valor en una cadena de dades. La funció strlen () s’ha utilitzat per comprovar la longitud d’una cadena str que ha estat afegida per un usuari en temps d’execució i desar-la en una variable l ’. A continuació, vam inicialitzar un bucle for per invertir la cadena str. Podeu veure que l’inicialitzador I ’pren el valor d’una variable l per invertir la direcció d’una cadena. A continuació, imprimeix els caràcters d’una cadena str ’una per una inversió. En l’últim, s’ha finalitzat el mètode principal. Deseu aquest fitxer amb Ctrl + S i sortiu-lo mitjançant Ctrl + X.

Ara és hora de compilar el codi i comprovar-ne la sortida. Per tant, la compilació s'ha realitzat mitjançant la consulta gcc que s'indica a continuació amb el nom d'un fitxer new.c.

$ gcc nou.c

Com que la compilació té èxit, significa que no hi ha cap error al nostre codi. Executem el nostre fitxer mitjançant una consulta a.out al shell com segueix:

$./a.fora

El procés d'execució demanarà a l'usuari que afegeixi una cadena. Hem afegit I-Am-Aqsa-Yasin i hem premut Retorn. Podeu veure que retorna el revers d’una cadena a la línia següent.

Exemple 02: Ús de Swapping

En aquest exemple, utilitzarem el mètode d'intercanvi per invertir l'ordre d'una cadena. Per tant, obriu el fitxer new.c una vegada més amb l'editor nano de la següent manera:

$ nano nou.c

Ara el fitxer s'ha obert a l'editor nano GNU; hem d’actualitzar el fitxer de codi amb l’escript que es mostra a continuació a la captura de pantalla. Primer hem inclòs el fitxer de capçalera d’entrada i sortida estàndard al nostre codi mitjançant una paraula clau #include. Hem definit un mètode Reverse () segons l’ús de la tècnica d’intercanvi. Hem inicialitzat tres variables de tipus enter noves, I i swap. El primer bucle for s’utilitza per comprovar si la cadena s està buida o no. El següent bucle s'utilitza per a la iteració i, al seu cos, hem canviat els valors mitjançant variables noves i d'intercanvi. Val a dir que invertir una cadena de longitud n només necessita n / 2 rondes. Un cop canviats les cadenes, haureu de tornar a fer un bucle per mostrar la cadena invertida, cosa que fem a la nostra aplicació mitjançant un tercer bucle for. La funció Reverse () s'ha de cridar des del programa principal interior. Heu indicat el que realitza el vostre programari amb printf dins del context de main (). Després d'això, heu utilitzat scanf () per obtenir l'entrada de l'usuari i heu invocat el mètode Reverse (). Ara deseu el fitxer de nou amb Ctrl + S i deixeu l’editor nano mitjançant la tecla de drecera Ctrl + X i torneu a l’intèrpret d’ordres del terminal.

Compileu primer el codi mitjançant una consulta gcc com es mostra a continuació.

$ gcc nou.c

Ara executeu el fitxer de codi utilitzant la mateixa instrucció ./a.out.

$./a.fora

Us demanarà que introduïu el valor de la cadena. Hem afegit AqsaYasin i hem aconseguit el seu revers.

Exemple 03: utilitzar la recursió

En aquest exemple, utilitzarem la recursió per invertir una cadena afegida per un usuari. Per tant, torneu a obrir el fitxer.

$ nano nou.c

Aquest programa imprimeix Introduïu una frase: es fa servir un mètode Reverse (). La lletra inicial introduïda per un usuari es desa en c mitjançant aquest mètode. Reverse () s'executa de nou si l'argument no és n (nova línia). Aquest procediment continua fins que l'usuari prem la tecla Retorn. Sempre que l'usuari prem Enter, el mètode Reverse () imprimeix el text en ordre invers. Deseu i tanqueu el fitxer.

Compileu primer el codi i després executeu-lo utilitzant les ordres anteriors de la següent manera:

$ gcc nou.c

$./a.fora

Podeu veure que pren l'entrada d'un usuari com una frase de cadena sencera i, a continuació, inverteix l'ordre d'aquesta frase.

Conclusió:

Finalment, hem fet tres exemples per aprofundir en la inversió d’una entrada de tipus de cadena amb diferents mètodes, per exemple, fent servir bucle, recursivitat i swap.