9. Satrlar va tuzilmalar


С-satrda qidirish va almashtirish


Download 244.41 Kb.
bet3/8
Sana12.03.2023
Hajmi244.41 Kb.
#1264900
1   2   3   4   5   6   7   8
Bog'liq
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 ing>
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:
1   2   3   4   5   6   7   8




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