Strstr sa C

Strstr C



Strstr () sa wikang C ay isang built-in na pagpapaandar. Ang pag-andar ng strstr ay maaaring maintindihan sa pamamagitan ng manu-manong naroroon sa terminal ng Ubuntu kung nagtatrabaho ka sa Ubuntu. Pagkatapos ay ipapakita sa iyo ng terminal ang gabay ng strstr at kung paano ito gumagana.

$lalakistrstr







Halimbawa 1

Isaalang-alang ang unang halimbawa ng strstr; ginamit namin ang code sa isang file. At makukuha namin ang output sa pamamagitan ng file na ito sa terminal. Tulad ng nalalaman na ang input ng strstr ay dalawang mga string, kung saan ang paglitaw ng isang string ay nakilala sa iba pang mga string. Una ang header ng library string.h ay gagamitin na humahawak ng maraming mga pag-andar ng string. Kung ang library na ito ay hindi ipinakilala, hindi posible na magpatupad ng isang programa ng mga function ng string. Ang pagpapaandar na string na ginamit sa source code na ito ay



P= strstr (s1,s2)

Sa ito, ang p ay isang pointer. Ang S1 at S2 ay dalawang mga string. Kailangan nating hanapin ang paglitaw ng s2 sa string s1. Upang mai-print ang mga resulta, gumamit kami ng isang kung-ibang pahayag upang mailapat ang kundisyon na suriin ang unang paglitaw ng string. Kung ang partikular na substring ay naroroon sa pangunahing string, ipapakita ito na may isang mensahe ng kumpirmasyon. Kung wala ito, pagkatapos ay ipapakita ang isang mensahe.







Sa screenshot sa itaas, maaari mong makita ang isang input string kung saan kailangan mong kilalanin ang maliit na string. Ang maliit na string na iyon ay nabanggit din kung ang pahayag ay kukuha ng p bilang isang pagtatalo sa parameter, bilang halaga ng strstr ang pag-andar ay nakaimbak dito.

Kung nagtatrabaho ka sa operating system ng Linux at nais na makuha ang output. Pagkatapos ay magagawa ito sa pamamagitan ng paggamit ng ilang mga utos sa terminal ng Ubuntu. Ang unang utos ay para sa pagtitipon



$GCC –o file9 file9.c

Para sa pagtitipon, kailangan namin ng isang tagatala, ang GCC na ginamit para sa Linux upang mag-ipon ng isang C program dito. -o ay ginagamit upang iimbak ang resulta sa isang output file mula sa pinagmulang file. Ngayon ang susunod na hakbang ay ang pagpapatupad.

$./file8

Nakumpleto ito sa pamamagitan ng paggamit ng isang paraan ng tuldok. Kung saan gumagamit kami ng isang tuldok at isang slash na may pangalan ng file.

Ipinapakita ng output na ang substring ay naroroon at ipinapakita rin ang lokasyon nito sa file.

Halimbawa 2

Ito ay isa pang simpleng halimbawa ng paggana ng strstr () nang hindi ginagamit ang if-statement. Sa programang C na ito, tutugma kami sa isang partikular na salita sa string at pagkatapos ay susunduin ito habang ang salita ay naitugma ayon sa paglitaw nito. Pagkatapos sa output, ang salita at ang mga character na naroroon kasama ang substring ay ipinapakita rin.

Output = strstr(a, searchstring);

Tulad ng paglitaw ay nakuha sa pamamagitan ng paggamit ng variable ng pointer sa code. Dahil ang pointer na ito ay ginagamit upang makuha ang lokasyon ng substring at upang makita ang substring, ginagamit lamang namin ang variable na pangalan nang walang asterisk sa output command. Kung nais naming ipakita ang lokasyon, gagamitin namin ang pointer (variable na may isang asterisk), ibig sabihin, * output.

Maaari mo itong makita sa output. Ang salitang pagpapaandar ay hahanapin bilang isang substring. Ang mga character, kasama ang substring, ay ipinapakita din.

Halimbawa 3

Sa code na ito, una naming mahahanap ang paglitaw ng sub-string, at pagkatapos ang sub-string na ito ay papalitan ng isa pang string. Muli ang dalawang mga string ay nakalaan bilang input. Ang isa ay ang malaking string, at ang isa pa ay isang salita na papalitan pagkatapos matukoy ang paglitaw nito. Ang paggana ng strstr tumutugma sa maliit na sub-string sa orihinal. At kapag ang laban ay itinatag sa kauna-unahang pagkakataon, ibinabalik nito ang halaga. Ngunit sa halimbawang ito, ang halagang ito ay karagdagang pinalitan. Tingnan natin kung paano ito gagana.

P = strstr(s1, s2);

Kung saan itatago ng p ang halaga ng paglitaw dito, ang S1 at s2 ang mga input na string.

Ngayon mayroon kaming punto ng paglitaw ng input string na iyon. Ngayon ay papalitan namin ang string na ito sa ibang salita. Ginagawa ito sa katawan ng pahayag kung. Ipinapakita nito na kung ang kondisyon ay totoo, ang salita ay itinatag, pagkatapos ay pinalitan ng isa pang salita. Ang kapalit na ito ay ginagawa sa pamamagitan ng isa pang pag-andar ng string.

Strcpy(p, strstr)

Nais naming palitan ang salitang strstr . Kung saan ang lokasyon ng unang paglitaw ng substring na kung saan pinalitan ang pagpapaandar. Strcpy () pinapalitan ang dalawang salitang ito sa string. Ang output ay makukuha sa pamamagitan ng parehong pamamaraan ng pagtitipon-pagpapatupad.

Mula sa output, makikita mo na ang string ay pinalitan ngayon ng ibang salita na inilarawan namin sa strcpy function.

Halimbawa 4

Ang halimbawang ito ay nagpapakita ng parehong konsepto. Dito kinuha namin ang libreng puwang bilang isang character bilang karagdagan sa salita bilang isang substring. Ito ay isang simpleng paglalarawan kung saan hindi namin nagamit ang if-statement. Ang konsepto lamang ng tugma at pagpapakita ang inilalapat. Dalawang mga string ang kinuha bilang input. Bilang karagdagan, ang salita ay ipinapakita kasama ang mensahe. Ang strstr gumagana sa parehong pamamaraan.

c= strstr(a, b);

Narito c ay ang variable na kung saan ang punto ng paglitaw ay maiimbak.

Ngayon, makukuha namin ang output.

Mula sa output, mapapansin mo na ang puwang ay binibilang din sa substring na ipinakilala namin.

Halimbawa 5

Ang halimbawang ito ay medyo naiiba sa mga nauna. Dito namin ginamit ang isang hiwalay na pagpapaandar upang maisagawa ang pagkilos ng strstr () sa halip na pangunahing programa. Sa paghahambing, ang mga halaga ay ipapasa bilang mga argument sa mga parameter ng tawag sa pagpapaandar. Sa halimbawang ito, nabanggit namin ang substring, at ang programa, pagkatapos ng pagpapatupad, ay ipapakita ang posisyon ng unang paglitaw sa halip na ang halaga sa output. Ang pagpapaandar ay makakatanggap ng mga halaga sa mga variable, at pagkatapos ay ilalapat namin ang strstr () sa mga variable na ito. Ginagamit ang pahayag na kung-iba upang suriin ang pagkakaroon at upang gawing totoo ang kundisyon at kung ito ay mali, pagkatapos ay lumipat sa ibang bahagi.

Char*pos = strstr(str, substr);

Samantalang p ay isang string, substr ay isang substring. Char * pos ay ang posisyon ng unang paglitaw ng isang substring sa string. Ang senyales ' % s 'Naroroon sa pahayag na ipinapakita ay nagpapahiwatig ng pagpapalit ng isang substring at ang buong string. Tulad ng naroroon na substring bago ang string sa parameter.

Ngayong paglipat patungo sa pangunahing programa. Una ang isang string ay ipinakilala na ipapasa sa pamamagitan ng isang function na tawag

Find_str(str, pinakamahusay);

Dito naidagdag din namin ang substring gamit ang string. Sa tuwing idaragdag ang isang bagong substring. Sa pangalawang pagkakataon na nagdagdag kami ng isang libreng karakter sa espasyo. Sa pangatlong pagkakataon, idinagdag ang isang substring na hindi isang bahagi ng string. At sa huli, ginagamit ang isang alpabeto.

Gamitin ang mga utos at pagkatapos ay tingnan ang resulta na nakadugtong sa ibaba.

Narito ang resulta ng mga tawag sa pagpapaandar ng C program. Ang unang dalawa at ika-4 na pahayag ay nasiyahan ang kundisyon, kaya ipinapakita ang sagot. Ang pangatlo ay hindi nauugnay, kaya't ang ibang bahagi ang hahawak nito.

Konklusyon

Sa artikulong ito, ang paggamit ng strstr ay tinalakay, kasama ang mga halimbawa. Ang mga halimbawang ito ay nagpapakita ng pagkakaiba-iba sa paggamit ng konseptong iyon sa maraming paraan. Madaling gamitin ang mga function ng string sa pagkakaroon ng kanilang header sa library.