10- amaliy mashg’ulot mavzu: satrlar va kengaytirilgan belgilar ishning maqsadi


Satr ostilarini izlash funksiyalari


Download 317.59 Kb.
Pdf ko'rish
bet21/33
Sana05.01.2022
Hajmi317.59 Kb.
#219883
1   ...   17   18   19   20   21   22   23   24   ...   33
Bog'liq
10-mavzu amaliyot (laboratoriyaga koʻrsatma)

Satr ostilarini izlash funksiyalari 

Satrlar  bilan  ishlashda  bir  satrda  ikkinchi  bir  satr  ostining  to‘liq  kirishini 

aniqlash  bilan  bog‘liq  masalalar  uchraydi.  Masalan,  matn  tahrirlaridagi  satrdagi 

birorta  satr  ostini  ikkinchi  satr  osti  bilan  almashtirish  masalasi.  Standart  string.h 

kutubxonasi bu toifadagi masalalar uchun bir nechta funksiyalarni taklif etadi. 

strstr() funksiyasi quyidagicha e’lon qilinadi: 

char* strstr(const char* str, const char* substr)     

Bu funksiya str satrini substr satr ostisi kirishi bo‘yicha qarab chiqadi, agar substr 

satr  ostisi  str  satriga  to‘liq  kirishi  mavjud  bo‘lsa,  birinchi  kirishdagi  birinchi 

belgining  adresi  javob  tariqasida  qaytariladi,  aks  holda  funksiya  NULL  qiymatini 

qaytaradi. 

 

Quyidagi misol strstr( ) funksiyasini ishlatishni ko‘rsatadi. 



char satr1[]=”Satrdan satr ostisi izlanmoqda, satr ostisi mavjud”; 

char satr2[]=”satr ostisi”; 

 

char* satr_osti; 



 

satr_osti = strstr(satr1,satr2); 

    

cout<

Dastur buyruqlari bajarilishi natijasida ekranga  

”satr ostisi izlanmoqda, satr ostisi mavjud”  




satri chop etiladi. 

Keyingi  dasturda  bo‘lagida  satr  osti  mavjud  yoki  yo‘qligini  nazorat  qilish 

holati ko‘rsatilagan: 

char Ismlar[]=”Alisher,Farxod, Munisa, Erkin, Akmal, Nodira”; 

char Ism[10]; 

char* Satrdagi_ism; 

 

cout<<”Ismni kiriting: “; 



 

cin>>Ism; 

 

Satrdagi_ism = strstr(Ismlar,Ism); 



          cout<<”Bunaqa ism ru\’yxatda “; 

    


if(Satrdagi_ism==NULL) cout<<”yo\’q .”<<’\n’; 

else cout<<”bor .”<’\n’; 

Dasturda foydalanuvchidan satr osti sifatida birorta ismni kiritish talab qilinadi va 

bu  qiymat  Ism  satriga  o‘qiladi.  Kiritilgan  ism  dasturda  aniqlangan  ro‘yxatda 

(Ismlar satri) bor yoki yo‘qligi aniqlanadi va xabar beriladi. 

    


strtok( )  funksiyasi sintaksisi  

 

char* strtok(char* str, const char* delim) 



ko‘rinishda  bo‘lib,  u  str  satrida  delim  satr-ro‘yxatida  berilgan  ajratuvchilar 

oralig‘iga  olingan  satr  ostilarni  ajratib  olish  imkonini  beradi.  Funksiya  birinchi 

satrda  ikkinchi  ro‘yxatdagi  ajratuvchini  uchratsa,  undan  keyin  nol-terminatorni 

(‘\0’)  qo‘yish  orqali  str  satrni  ikkiga  ajratadi.  Satrning  qolgan  qismidagi 

ajratuvchilar  bilan  “o‘rab  olingan”  satr  ostilari  topish  uchun    funksiyaga  keyingi 

murojaatlarda  birinchi  parametr  o‘rniga  NULL  qiymatini  qo‘yish  kerak  bo‘ladi. 

Quyidagi misolda  satrni bo‘laklarga ajratish masalasi qaralgan: 

 


Download 317.59 Kb.

Do'stlaringiz bilan baham:
1   ...   17   18   19   20   21   22   23   24   ...   33




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling