Belgili tur va undan foydalanish



Download 23,39 Kb.
Sana17.04.2020
Hajmi23,39 Kb.
#45407
Bog'liq
Belgili tur va undan foydalanish

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 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish