Belgili tur va undan foydalanish



Download 23.39 Kb.
Sana17.04.2020
Hajmi23.39 Kb.
Belgili tur va undan foydalanish

Reja:


1.Belgili tur haqida umimiy ma’lumotlar.

2.C++ tarkibidagi belgili turga oid standart funksiyalar.

3.Belgili turga oid misollar(amaliy qism).

Belgili tur haqida umumiy ma’lumotlar

C++ dasturlash tilida bir nechta turlardan foydalanish va ular ustida amallar bajarish mimkin, dasturlash muhitida boshqa turlar kabi belgili turlar ham mavjud. C++ dasturlash tilida belgili turlar char turiga mansub bo‘lgan yagona elementli tur hisoblanadi. C++ dasturlash tilida satrlar uchun alohida maxsus turlar ishlab chiqilmagan satrlarni belgilar massivi sifatida ishlatish imkoniyati mavjud.



Ta’rif: Alohida nom bilan saqlanuvchi bir nechta belgilardan tashkil topgan belgilar majmuasi satr deyiladi.

Satrlarni belgilar massivi sifatida qarab ular ustida amallar bajarish mumkin. C++ dasturlash tilida satrlar nol(‘\0’) terminatori bilan tugaydi. Nol terminatori bilan tugaydigan satrlar ASCIIZ –satrlari deyiladi.

Satrlardan foydalanish va ular ustida amallar bajarish uchun albatta oldin ularni e’lon qilish kerak.


#include include Using namespace std; int main() { char s[10]; //s satrli o’zgaruvchini e’lon qilish return 0 ; }


Satrlarni kiritish jarayonida >> oqim bo‘yicha kiritishdan foydalanmasdan getline() funksiyasidan foydalanish maqsadga muvofiq bo‘ladi. Agar oqim bo‘yicha kiritishdan foydalanilsa unda probellar inkor qilinib satrni ikkinchi qismlari qabul qilinmaydi. getline(s,n) funksiyasi ikkita parametrni o‘z ichiga oladi, birinchisi s satr o‘zgaruvchisi ikkinchisi n satr elementlar soni. Getline funksiyasi satr elementlaridan ortiq qiymatlarni ham kiritish imkoniyatini yaratadi, natijada satr elementlari ortadi.


#include #include using namespace std; int main() {char s[10]; //s satrli o'zgaruvchini e'lon qilish cin.getline(s,10); cout<




Kiritish ma’lumotlari Absdefghl

Dastur natijasi Absdefghl

C++ tarkibidagi belgili turga oid standart funksiyalar

Satrlar ustida amallar bajarish vaqtida albatta satrlarning uzunligi kerak bo‘ladi. Satr uzunligini aniqlash uchun string.h kutubhonasiga murojat qilish kerak aksariyat satr uchun ishlatiladigan funksiyalarni string.h kutubhonasiga murojat qilib ishlatishimiz mumkin. Satr uzunligini aniqlashni ikki hil usuli mavjud.

-satr tarkibidagi mavjud elementlar sonini nol terminatorisiz aniqlash;

-satr tarkibidagi elementlarga ajratilgan sonini nol terminatori bilan aniqlash;

Satr tarkibidagi mavjud elementlar sonini nol terminatorisiz aniqlash funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi.

strlen();

Demak sizeof(s) funksiyasi s satrni tarkibidagi mavjud elementlari sonini emas balki unga ajratilgan qiymatni aniqlaydi. Agar sizeof funksiyasi tarkibida o‘zgaruvchi emas satr uzini kiritsa unda sizeof funksiyasi tarkibidagi elementlardan bitta ko‘p qiymatni qaytaradi chunki nol terminatorini ham qo‘shadi. Quyidagi dasturga e’tibor bering.



Satrlarni nusxalash

C++ dasturlash tilida satrlarni bir biriga nusxalashni bir qancha usullari mavjud. Satrlarni nusxalash uchun strcpy() funksiyasidan foydalanish mumkin, strcpy() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi.



strcpy(satr1, satr2);

strcpy(satr1, satr2) funksiyasi satr2 dagi elementlarni to‘laligicha satr1 ga nusxalaydi. Satr1 ni elementlar soni doimo satr2 elementlar sonidan katta bo‘lishi kerak.

Satrlarni nusxalash uchun strncpy() funksiyasidan foydalanish mumkin, strncpy() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi.

strncpy(satr1, satr2,n);

strncpy(satr1, satr2,n) funksiyasi satr2 dagi elementlarni n tasini satr1 ni boshiga nusxalaydi. Strncpy() funksiyasini strcpy() funksiyasidan farqi satr2 ni nta elementini satr1 ni boshiga nusxalaydi.

Bir nechta satrlarni ulash natijasida yangi satrlarni hosil qilish mumkin. C++ dasturlash tili tarkibida satrlarni bir biriga ulashni bir nechta usullari mavjud, satrlarni bir biriga ulab yangi satrlar hosil qilinadi. C++ dasturlash tilida strcat() funksiyasi yordamida satrlarni bir biriga ulash imkoniyati mavjud, strcat() funksiyasining umumiy ko‘rinishi quyidagicha ko‘rinishda bo‘ladi.

strcat(satr1, satr2);

C++ dasturlash tilida strcat(satr1, satr2) funksiyasi satr2 ni satr1ni oxiriga ulaydi.

C++ dasturlash tilida strncat() funksiyasi yordamida satrlarni bir biriga faqat n ta elementini ulash imkoniyati mavjud, strncat() funksiyasining umumiy ko‘rinishi quyidagicha ko‘rinishda bo‘ladi.

strncat(satr1, satr2,n);

C++ dasturlash tilida strncat(satr1, satr2, n) funksiyasi satr2 ni n ta boshlang’ich elementlarini satr1ni oxiriga ulaydi.

Satrlarni teskari tartiblash uchun C++ dasturlash tilidan tashqari boshqa dasturlash tillarida takrorlanish jarayonlari orqali bajariladi. C++ dasturlash tilida satrlarni teskari tartiblash uchun strrev() funksiyasi yordamida bajarish mumkin.

Strrev() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi.



strrev();

Strrev(s) funksiyasi s satrni teskari tartibda jaoylashtiradi.

Satr tarkibidan birorta belgini qidirish uchun C++ dasturlash tilining string.h kutubxonasi ichidan strchr() funksiyasidan foydalanish kerak. Strchr() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi.

strchr();

Strchr(s) funksiyasi s satr ichida p belgini izlaydi agar topilsa shu elementdan keyingi qismni aks holda nullni qaytaradi.

Satr tarkibidan birorta qism satrni qidirish uchun C++ dasturlash tilining string.h kutubxonasi ichidan strstr() funksiyasidan foydalanish kerak. Strstr() funksiyasining umumiy ko‘rinishi quyidagicha bo‘ladi.

strstr();

Strstr(s) funksiyasi s satr ichida p qism satrni izlaydi agar topilsa shu satrdan keyingi qismni aks holda nullni qaytaradi.

MISOLLAR.

1. S matn berilgan bo‘lsin. Bu matnda “a” belgisi necha marta uchraydi ?

#include

#include

using namespace std;

int main()

{int n,x=0;string s;

getline(cin,s);

for(int i=0;s[i];i++)

{if(s[i]=='a') x++;}

cout << x<< endl;

return 0;

}

2.C belgisi va S1, S2 satrlari berilgan. S1 satriga shu satrda uchragan har bir C belgisidan keyin S2 satrini qo’shuvchi programma.



#include

using namespace std;

int main()

{int n,x=0;string s,p,t=" ";

getline(cin,p);

getline(cin,s);

for(int i=0;s[i];i++)

{if(s[i]=='c')t+=s[i]+p;

else t+=s[i];}

cout << t;

return 0;}

3. Berilgan matndan katta xarflar bilan boshlanadigan so’zlar sonini toping.
 .
 #include

using namespace std;

int main()

{string s; int j=0;

while(getline(cin,s))

{int l=s.length();

if(s[0]>='A'&&s[0]<='Z') j++;

for(int i=1;i<=l-1;i++)

{if(s[i]==' '&&s[i+1]>='A'&&s[i+1]<='Z') j++;} cout<

4.Sizga bitta natural sonni anglatuvchi satr berilgan shu sonning raqamlarini

teskari tartibda chiqarish.

#include

using namespace std;

int main()

{string s; cin>>s;

int l=s.length(); string y=” ”;

for(int i=l-1;i>=0;i--)

{y+=s[i];} cout<

return 0;}

5.S matn berilgan. Bu matndadagi katta harflarni alohida chiqaring.

#include

using namespace std;

int main()

{string s;

cin>>s;

int l=s.length(); string y=" ";



for(int i=0;i<=l;i++) {

if((int)s[i]>=65&&(int)s[i]<=90)

y+=s[i];}

cout<


return 0;}

6.s satrdagi raqamlar ko’paytmasini toping.

#include

using namespace std;

int main()

{string s;

cin>>s;

int l=s.length(); int y=1;



for(int i=0;i<=l;i++) {

if((int)s[i]>=48&&(int)s[i]<=57)

y*=(int)s[i];}

cout<


return 0;}

7. Matndagi unli хarflarning umumiy sоnini хisоblоvchi dastur tuzilsin (lotin alifbosidagi unli xarflar A,a,O,o,I,i,U,u,E,e)

#include

using namespace std;

int main()

{string s; getline(cin,s); int l=s.length(); int k=0;

for(int i=0;i

s[i]=='U'||s[i]=='u'|| s[i]=='O`'||s[i]=='o`')

k++;}

cout<

8.S satr tarkibida d harfi necha marta qatnashganini toping.

#include

using namespace std;

int main()

{string s;

getline(cin,s); int l=s.length();

int k=0;

for(int i=0;i

{if(s[i]=='d')

k++;} cout<

return 0;}

9.S satr berilgan.undagi lotin katta belgilarning Ascii kodlari yig’ndisini toping.

#include

using namespace std;

int main()

{string s;

cin>>s;

int l=s.length(); int y=0;



for(int i=0;i<=l;i++) {

y+=(int)s[i];}

cout<

return 0;}



10. Matndagi A va Y хarflarining sоnini aniqlash dasturi tuzilsin

#include

using namespace std;

int main()

{ int n1 = 0 , n2 = 0 ; string s ;

getline(cin, s);

for ( int i = 0 ; s[i] ; i++ ){

if ( s[i] == 'A' ) n1++ ;

else if ( s[i] == 'Y' ) n2++ ; }

cout << n1 << endl ; cout << n2 ;



return 0 ; }
Download 23.39 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2020
ma'muriyatiga murojaat qiling

    Bosh sahifa
davlat universiteti
ta’lim vazirligi
O’zbekiston respublikasi
maxsus ta’lim
zbekiston respublikasi
o’rta maxsus
davlat pedagogika
axborot texnologiyalari
nomidagi toshkent
pedagogika instituti
texnologiyalari universiteti
navoiy nomidagi
samarqand davlat
guruh talabasi
ta’limi vazirligi
nomidagi samarqand
toshkent axborot
toshkent davlat
haqida tushuncha
Darsning maqsadi
xorazmiy nomidagi
Toshkent davlat
vazirligi toshkent
tashkil etish
Alisher navoiy
Ўзбекистон республикаси
rivojlantirish vazirligi
matematika fakulteti
pedagogika universiteti
таълим вазирлиги
sinflar uchun
Nizomiy nomidagi
tibbiyot akademiyasi
maxsus ta'lim
ta'lim vazirligi
махсус таълим
bilan ishlash
o’rta ta’lim
fanlar fakulteti
Referat mavzu
Navoiy davlat
umumiy o’rta
haqida umumiy
Buxoro davlat
fanining predmeti
fizika matematika
universiteti fizika
malakasini oshirish
kommunikatsiyalarini rivojlantirish
davlat sharqshunoslik
jizzax davlat