Paano Baligtarin ang Isang String Sa C

How Reverse String C



Sa pag-coding ng string, ang pag-reverse ng string ay isang kritikal na paksa. Mayroon ding maraming mga pamamaraan para sa pag-reverse ng isang string, na ang bawat isa ay may iba't ibang lohika. Ipapakita sa iyo ng artikulong ito kung paano maayos na baligtarin ang isang string upang magamit ang iba't ibang mga diskarte at pangangatuwiran sa at nang hindi nangangailangan ng anumang mga paunang pag-andar. Kailan man ilalapat ang baligtad ng isang diskarteng string sa isang partikular na natatanging string ng pag-input, ang teksto na ibibigay ng isang mamimili sa isang tukoy na pagkakasunud-sunod ay ganap na mababaligtad. Sa halimbawa sa ilalim, ang iba't ibang mga kahalili ng pag-reverse ng isang string na may C ay nagtrabaho.

Kapag ipinapatupad ang gabay na ito, nagtatrabaho kami sa Ubuntu 20.04 Linux system na naka-configure sa Virtual Box. Habang nagtatrabaho sa isang sistema ng Linux, ginagawa namin ang karamihan sa aming mga pag-install at query sa shell ng terminal. Samakatuwid, buksan ang terminal shell sa pamamagitan ng isang shortcut Ctrl + Alt + T o hanapin ito sa pamamagitan ng isang search bar ng application sa ilalim ng lugar ng Aktibidad ng desktop ng Ubuntu. Kinakailangan na i-update muna ang iyong system sa pamamagitan ng apt na query sa pag-update. Hihilingin sa iyo para sa kasalukuyang password ng gumagamit upang patakbuhin ang pag-update. Samakatuwid, magdagdag ng isang password at pindutin ang Enter button.







$ sudo apt update



Tulad ng paggamit namin ng wikang C programming upang idetalye ang konsepto ng pag-reverse ng mga string sa system ng Ubuntu 20.04, dapat magkaroon ang isang C compiler na naka-install sa kanilang Ubuntu system. Samakatuwid siguraduhing mai-install ang tagatala ng GCC sa iyong system sa pamamagitan ng query sa ibaba.



$ sudo apt install gcc

Halimbawa 01: Paggamit Para sa Loop

Matapos ang pag-install at pagsasaayos ng tagatala ng GCC at pag-update ng apt package, lumiliko ito upang lumikha ng isang bagong file. Ang file na ito ay dapat na may uri ng C; samakatuwid, gamitin ang touch command upang lumikha ng isang file na new.c tulad ng sa ibaba. Ang file na ito ay gagamitin sa aming code mula ngayon sa pagpapatupad ng mga programa ng reverse string.





$ pindutin ang bago.c

Ngayon ay maaari mong buksan ang file na ito para sa pag-edit o pag-coding ng isang Nano editor na built-in sa iyong system ng Ubuntu 20.04 Linux. Samakatuwid, subukan ang tagubilin sa ibaba sa iyong shell upang gawin ito.



$ nano bago.c

Ang bagong likhang C-type na file na bago ay binuksan sa GNU Nano Editor ng Ubuntu 20.04 system. Kailangan mong magsulat ng isang C script dito, tulad ng ipinakita sa imahe ng screenshot sa ibaba. Ipaalam sa amin sa karagdagang detalye ang code na ito para sa iyong mas mahusay na pag-unawa. Sa pagsisimula ng isang code, isinama namin ang dalawang aklatan. Ang library stdio.h ay ginamit upang kumuha ng mga input at ipakita ang mga output, at ang iba pang library string.h ay ginamit upang magamit ang lahat ng uri ng mga string sa aming code. Ang lahat ng gawain ng pag-reverse ng isang string ay gagawin sa pangunahing () paraan ng isang C code. Nagdeklara kami ng isang string na uri ng character na may sukat na 50. Nangangahulugan ito ng isang string na may higit sa 50 mga character ay hindi maaliw sa code na ito. Pagkatapos nito, idineklara namin ang dalawang variable na uri ng integer. Ang variable l ay ginamit para sa pagkolekta ng haba ng isang str str at, ang variable ay gagamitin ako bilang isang initializer para sa loop. Pagkatapos ay ginamit namin ang isang pahayag ng printf upang mag-print ng isang teksto sa shell Magpasok ng string, na nagsasabi sa isang gumagamit na magdagdag ng isang halaga sa isang variable ng string. Ang pamamaraan ng scanf () ay ginamit upang mai-input ang gumagamit sa oras ng pagpapatakbo at i-save ang halagang iyon sa isang str str. Ang function strlen () ay ginamit upang suriin ang haba ng isang str str na naidagdag ng isang gumagamit sa oras ng pagpapatakbo at nai-save ito sa isang variable l '. Pagkatapos ay pinasimulan namin ang isang para sa loop upang baligtarin ang str str. Maaari mong makita na ang inisyal na I ’ay kumukuha ng halaga mula sa isang variable l upang baligtarin ang direksyon ng isang string. Pagkatapos ito ay naglilimbag ng mga character ng isang string str 'nang paisa-isa. Sa huli, ang pangunahing pamamaraan ay natapos na. I-save ang file na ito gamit ang Ctrl + S at umalis ito sa pamamagitan ng Ctrl + X.

Panahon na ngayon upang mag-ipon ng code at suriin para sa output nito. Samakatuwid, ang pagtitipon ay nagawa ng nakasaad sa ibaba na query ng gcc na may pangalan ng isang file na bago.c.

$ gcc bago.c

Bilang tagumpay ay naging matagumpay, nangangahulugan ito na walang error sa aming code. Isagawa natin ang aming file sa pamamagitan ng a.out query sa shell tulad ng sumusunod:

$./sapalabas

Hihilingin sa proseso ng pagpapatupad sa gumagamit na magdagdag ng isang string. Nagdagdag kami ng I-Am-Aqsa-Yasin at pinindot ang Enter. Maaari mong makita na ibabalik nito ang reverse ng isang string sa sumusunod na linya.

Halimbawa 02: Paggamit ng Pagpalit

Sa halimbawang ito, gagamitin namin ang pamamaraang pagpapalit upang ibalik ang pagkakasunud-sunod ng isang string. Samakatuwid buksan ang file na bago.c muli gamit ang nano editor tulad ng sumusunod:

$ nano bago.c

Ngayon ang file ay binuksan sa GNU nano editor; kailangan naming i-update ang file ng code kasama ang ipinakitang script sa ibaba sa screenshot. Isinama namin ang karaniwang input at output header file sa aming code na unang ginagamit ang isang keyword na isama. Kami ay tinukoy ng isang paraan Reverse () ayon sa paggamit ng diskarte sa pagpapalit. Nakapagsimula kami ng tatlong variable ng uri ng integer na bago, ako, at nagpapalitan. Ang una para sa loop ay ginagamit upang suriin kung ang string s ay walang laman o hindi. Ang susunod para sa loop ay ginagamit para sa pag-ulit, at sa katawan nito, napalitan namin ang mga halaga gamit ang bago at mga swap variable. Mahalagang tandaan na ang pag-reverse ng isang n-haba na string ay tumatagal lamang ng n / 2 na pag-ikot. Kapag napalitan na ang mga string, kakailanganin mong mag-loop muli upang maipakita ang baligtad na string, na ginagawa namin sa loob ng aming application gamit ang isang pangatlo para sa loop. Ang pagpapaandar na Reverse () ay dapat tawagan mula sa panloob na pangunahing programa. Nailahad mo kung ano ang ginagawa ng iyong software sa printf sa loob ng konteksto ng pangunahing (). Pagkatapos nito, ginamit mo ang scanf () upang makakuha ng pag-input ng gumagamit at tinawag ang Reverse () na pamamaraan. I-save muli ang file gamit ang Ctrl + S at iwanan ang nano editor ng Ctrl + X shortcut at bumalik sa terminal shell.

Ipunin muna ang code sa pamamagitan ng isang gcc query tulad ng nasa ibaba.

$ gcc bago.c

Ipatupad ngayon ang code file usng pareho ./a.out tagubilin.

$./sapalabas

Hihilingin sa iyo na ipasok ang halaga ng string. Nagdagdag kami ng AqsaYasin at nabaliktad ito.

Halimbawa 03: Paggamit ng Recursion

Sa halimbawang ito, gagamit kami ng recursion upang i-reverse ang isang string na idinagdag ng isang gumagamit. Samakatuwid buksan muli ang file.

$ nano bago.c

Ang program na ito ay naglilimbag Ipasok ang isang pangungusap: Ang isang Reverse () na pamamaraan ay ginagamit pagkatapos. Ang paunang sulat na nai-input ng isang gumagamit ay nai-save sa c sa pamamagitan ng pamamaraang ito. Ang Reverse () ay naisakatuparan muli kung ang pagtatalo ay ibang bagay kaysa sa n (newline). Nagpapatuloy ang pamamaraang ito hanggang sa mapindot ng gumagamit ang Enter key. Kailan man pumipilit ang gumagamit na pumasok, ang Reverse () na paraan ay na-print ang teksto sa reverse order. I-save at isara ang file.

Compile muna ang code at pagkatapos ay patakbuhin ito sa pamamagitan ng paggamit ng mga nakaraang command tulad ng sumusunod:

$ gcc bago.c

$./sapalabas

Maaari mong makita na tumatagal ng pag-input mula sa isang gumagamit bilang isang buong string na pangungusap at pagkatapos ay baligtarin ang pagkakasunud-sunod ng pangungusap na iyon.

Konklusyon:

Sa wakas, nakagawa kami ng tatlong mga halimbawa upang idetalye sa pag-reverse ng isang input ng uri ng string na may iba't ibang mga pamamaraan, hal., Paggamit para sa loop, paggamit ng recursion, at paggamit ng pagpapalit.