9. Satrlar va tuzilmalar
С-satrda qidirish va almashtirish
Download 244.41 Kb.
|
09.Satrlar va tuzilmalar
С-satrda qidirish va almashtirish uchun foydalanilanish mumkin bo‘lgan funksiyalar bilan tanishamiz.
strchr() funksiyasi str С-satrida "ch" belgining birinchi uchrashini qidiradi. Qiymat sifatida str С-satrida birinchi topilgan belgiga ko‘rsatkich yoki agar belgi topilmasa, nolinchi ko‘rsatkich qaytaradi. Funksiyaning prototiplari quyidagicha ko‘rinishga ega: #include char *strchr(char *Str, int Ch) ; const char *strchr(const char *Str, int Ch) ; Funksiyadan foydalanishga misol: char str[] = "string string", *p = 0; p = strchr(str, 'n'); if(p) { cout << "Index: " << p – str << endl; } // Natija: Index: 4 strrchr() – str С-satrida "ch" belgining oxirgi uchrashini qidiradi. Qiymat sifatida belgiga ko‘rsatkich, agar belgi topilmasa, nolinchi ko‘rsatkich qaytaradi. Funksiyaning prototiplari quyidagicha: #include char *strrchr(char *Str, int Ch) ; const char *strrchr(const char *Str, int Ch) ; Misol: char str[] = "string string",*p = 0; p = strrchr(str, 'n'); if(p) { cout << "Index: " << p – str << endl; } memchr() funksiyasi St satrda K belgining birinchi uchrashini qidiradi. Funksiya qiymat sifatida St satrda birinchi topilgan belgiga ko‘rsatkichni qaytaradi. Agar belgi topilmasa, nolinchi ko‘rsatkich qaytaradi. Natijani ko‘rsatkichga o‘zlashtirishdan avval char* tipiga keltirishni bajarish zarur. Funksiyaning prototipi: #include void *memchr(void *St, int K, size_t N); Misol tariqasida satrda "s" belgini qidish kodini ko‘ramiz. Belgining indeksini chiqarish uchun manzilli arifmetikadan foydalanamiz (bir ko‘rsatkichni boshqasidan ayirish): char str[]="String", *p = 0; p = (char *)memchr(str, 's', strlen(str)); if(p) { cout << "Index: " << p – str << endl; } else cout << "Topilmadi" << endl; strpbrk() – str С-satrida Control C-satriga kiruvchi belgilardan birining birinchi uchrashini qidiradi (nol belgi hisobga olinmaydi). Funksiya qiymat sifatida birinchi topilgan belgiga ko‘rsatkich yoki belgilar topilmasa, nolinchi belgiga ko‘rsatkich qaytaradi. Funksiyaning prototiplari: #include char *strpbrk(char *Str, const char *Control); const char *strpbrk(const char *Str, const char *Control); Misol: char str[] = "string string", *p = 0; p = strpbrk(str, "nr"); if(p) { cout << "Index: " << p - str << endl; } // Natrija: Index: 2 (birinchi "r" harfining indeksi) strcspn() funksiyasi C-satriga kiruvchi Control belgilardan biri bilan mos keluvchi str C-satridagi birinchi belgi indeksini qaytaradi. Funksiyaning prototipi: #include size_t strcspn(const char *Str, const char *Control); Misol: char str[] = "string1 string2"; size_t index; index = strcspn(str, "ingr"); cout << "Index: " << index << endl; // Natija: Index: 2 ("r" harfi) strspn() funksiyasi C-satriga kuruvchi Control belgilarning hech biri bilan mos kelmaydigan str C-satridagi birinchi belgi indeksini qaytaradi. Funksiyaning prototipi: #include size_t strspn(const char *Str, const char *Control); Misol: char str[] = "string1 string2"; size_t index; index = strspn(str, "singtr"); cout << "Index: " << index << endl; // Natija: Index: 6 ("1" "singtr"ga kirmaydi) strstr() – str C-satrida substr C-satridagi butun parchaning birinchi uchrashini qidiradi. Qiymat sifatida parchaning birinchi uchrashiga ko‘rsatkich yoki uchramasa, nol ko‘rsatkich qaytaradi. Funksiyaning prototiplari: #include char *strstr(char *Str, const char *SubStr); const char *strstr(const char *Str, const char *SubStr); Misol: char str[] = "string1 string2", *p = 0; p = strstr(str, "ing2"); if(p) { cout << "Index: " << p – str << endl; } // Natija: Index: 11 memset() funksiyasi Dst satrdagi birinchi Size belgilarni Val belgisi bilan almashtiradi. Funksiya qiymat sifatida Dst satrga ko‘rsatkichni qaytaradi. Quymatni ko‘rsatkichga o‘zlashtirishdan avval char* tipga keltirishni bajarish lozim. Funksiyaning prototipi quyidagicha: #include void *memset(void *Dst, int Val, size_t Size); Misol: char str[] = "String", *p = 0; p = (char *)memset(str, '*', 4); if(!p) exit(1); cout << str << endl; cout << p << endl; Download 244.41 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling