logo

Strsep() funkcija C

Ievads:

Stīgas ir būtiska sastāvdaļa programmēšana , jo tie ļauj sazināties ar lietotājiem, rādīt rezultātus un lasīt failus . Tie ir datu ievades un izvades mehānisma veids. Kopš stīgas tiek pastāvīgi izmantoti zināmā mērā mūsu izveidotajās programmās, efektīva virkņu apstrāde un funkcijas, kas tās apstrādā, ir ļoti svarīgas.

Šī apmācība jums iemācīs, kā sadalīt tekstus atkarībā no norobežotājiem, izmantojot strsep() metode .

Mēs iesim pāri ievade un izvada argumenti priekš strsep() , tā sintakse un teorētiskais skaidrojums , un atļautie datu veidi katram no šiem argumentiem.

Pēc tam mēs iemācījāmies praksē, izmantojot koda fragmentus un grafiku, lai fragmentētu virknes, izmantojot strsep() metode , kas ir parādīts praktiskajos piemēros.

Strsep() funkcijas sintakse C valodā:

 char *strsep(char **restrict stringp, const char *restrict delim); 

Funkcijas Strsep() skaidrojums C:

  • A virkne tiek sadalīts, izmantojot strsep() funkcija , sākot ar iepriekš noteiktu norobežotāju.
  • The virkne uz kuru norādīja stringp ievade arguments tiek sadalīts ar šo funkciju, un pēc tam daļas tiek apvienotas, veidojot jaunas virknes, kas beidzas ar nulles rakstzīmi.
  • Katra jauna virkne sākas ar adrese ko dod izvades rādītājs un beidzas vietā, kur norobežotājs norādījis ES dalos un strsep() Kad tiek atrasts norobežotājs, funkcija to aizstāj ar nulles rakstzīmi, lai norādītu jaunās virknes beigas.
  • The stringp rādītājs tiek automātiski iestatīts fragmenta sākumā pēc tam, kad tiek atklāta norobežotāja rakstzīme, kad funkcija atgriežas no izsaukuma. The stringp rādītājs tagad ir gatavs iegūt nākamo fragmentu nākamajā funkcijas izsaukumā. Līdz plkst strsep() beidzas norobežotāji un atgriež nulles rādītāju. Rezultātā šis process tiek atkārtots katram zvanam.

Ir svarīgi atzīmēt, ka šī funkcija neatgriezeniski maina ievades tekstu, aizstājot atdalītājus ar nulles rakstzīmēm. The 'string.h' galvene satur definīciju strsep() funkcija . Lai izmantotu to un citas virkņu pārvaldības funkcijas, tas ir jāiekļauj savā kodā šādi:

 #include 

Kā izmantot C valodas Strsep() funkciju, lai sadalītu virkni vairākos fragmentos

Šajā piemērā frāze 'Sāksim programmēt' tiek izveidots kā virkne, un tās saturs tiek sadalīts, izmantojot strsep() funkcija . Pēc tam katra no jaunizveidotajām virknēm tiek izveidota atsevišķā rindā komandu terminālis . Virkne, uz kuru norādīja stringp ievades parametrs tiek sadalīts pa vārdam, jo ​​norobežotājs, ko izmantojam delim ievades argumentā, ir atstarpes rakstzīme ('') .

atšķirība starp ledu un sniegu

Mēs paziņojam, 's_in' virkni kopā ar tekstu 'Sāksim programmēt' un 'in_Ptr' rādītājs iekš galvenā() funkcija . The strsep() funkcijas stringp ievades arguments ir šis rādītājs.

delim ievades arguments priekš strsep() metode un norādītā norobežotāja rakstzīme, mēs papildus deklarējam 'string del' ar atstarpes raksturu. Tālāk mēs paziņojam 'o_Ptr' rādītājs , kas tiek izmantots kā strsep() izvades arguments . The printf() metode izmantos šo rādītāju kā ievades argumentu, lai parādītu atkopto fragmentu komandu konsolē.

Pēc tam, pēc piegādes no virknes kā pirmais arguments 'in_Ptr' rādītājs kā otrais parametrs, un 'o_Ptr' rādītājs kā izejas argumentu mēs saucam par strsep() funkcija . Šis zvans tiek veikts a kamēr cilpa ar aizbēgšanas nosacījumu, ka vairs nav norobežotāju, kad strsep() atgriež nulles rādītājs.

Šī piemēra kods ir šāds:

 #include #include int main() { char s_in[50] = 'Let's start programming '; char del[20] = ' '; char* in_Ptr = s_in; char* o_Ptr; while ((o_Ptr = strsep(&in_Ptr, del)) != NULL) { printf('%s
', o_Ptr); } return 0; } 

Strep () sadala 's_in' virkne vārdu pa vārdam, katru reizi izveidojot jaunu virkni, kas pēc tam tiek parādīta jaunā rindā komandu konsolē, kā parādīts tālāk ;

bezmaksas vs bezmaksas

Izvade:

 Let's start programming 

Secinājums

Šajā rakstā mēs parādījām, kā apstrādāt virknes, izmantojot strsep() funkcija , viena no funkcijām, kas norādītas 'string.h' galvene. Mēs runājām par tā teorētisko pamatojumu sintakse, izsaukšanas tehnika , un darbība . Turklāt mēs parādījām, kāda veida datus pieņem katrs ievades un izvades arguments.