Mavzu: C++ da char tipli massivlar bilan ishlash Ishdan maqsad


getline funksiyasidan foydalanishimiz mumkin. char



Download 392,82 Kb.
Pdf ko'rish
bet2/4
Sana23.07.2022
Hajmi392,82 Kb.
#843921
1   2   3   4
getline
funksiyasidan foydalanishimiz mumkin.
char
s[100];
cin.getline(s, 10);
cout<endl
;
cout<<
strlen
(s); 
strlen(s) 

 
s char massivning
 
uzunligini aniqlaydi.
Bu dastur kodida 9 ta simvol o‟qib olinadi. Chunki 
char
massivda oxirgi simvol 
NULL qiymatini qabul qiladi.
Belgili massiv tavsiflanganda boshlang‟ich qiymati ham berilishi mumkin:
char
s[] = 
"abcdefg hikkl"
;
Simvolli massivni to‟g‟ridan to‟g‟ri 
cout<
orqali chiqarishdan tashqari sikl 
bilan ham chiqarish mumkin:
1)
for
(
int
i = 0; i < 
strlen
(s); i++){ 
cout<
2)
for
(
int
i = 0; s[i] != 
'\0'
; i++){ 
cout<
s[i] != 
'\0' 
bilan
s[i] != 
NULL 
bir 
xil
.
Alohida belgilar ko‟rinishida ham berish mumkin:
char
s[10] = {
'a'

'b'

'c'

'd'
}; 
char tipli massiv bilan ishlash funksiyalari. 
char tipli massiv satr deb ham nomlanadi. 


Funksiya
 
Tavsifi
 
strlen
(
satr_nomi
)
char massiv uzunligini aniqlaydi . Bunda NULL simvol hisobga olmaydi.
Nusxa olish
 
strcpy
(
s1,s2
)
s2 char massiv simvollarini s1 ga ko’chiradi.
char
s1[] = 
"abcd123456"

char
s2[] = 
"efghij"

strcpy
(s1,s2);
chiqadi.
cout<efghij
strncpy
(
s1,s2, n
)
s2 massivning dastlabki n ta simvolini s1 massivning dastlabki dastlabki n ta 
indeksiga joylashtiradi.
char
s1[] = 
"abcdefghijklmn"
;
char
s2[] = 
"123456"
;
strncpy
(s1, s2, 4);
cout<endl

strncpy
(s1, s2, 40);
cout<endl

Natija
:
1234efghijklmn 
123456
Ulash
 
strcat(
s1,s2
)
 
 
s2 massivni s1 massivning davomiga birlashtiradi. 
char
s1[] = 
"ab"
;
char
s2[] = 
"ba"
;
strcat
(s1, s2);
cout<endl

Natija:
abba 
strncat(
s1,s2,n
)
 
 
s2 ning dastlabki n ta harfini satrni s1 massivning davomiga birlashtiradi. 
Satrlarni taqqoslash
 


strcmp(
s1,s2
)
 
 
s1 char massiv bilan s2 char massivni leksikografik jihatdan taqqoslaydi va int tipidagi 
son qaytaradi. Agar s1=s2 teng bo’lsa 
-
0, s1>s2 bo’lsa
- 1, s1bo’lsa
- -1 
qaytaradi. Harflarning kata kichikligi hisobga olinadi.
strncmp(
s1,s2,n
)
 
 
s1 va s2 satrlarning dastlabki n ta simvollarini taqqoslaydi va agar satrlar teng bo’ls
a 0, 
s1>s2 
bo’lsa 
- 1
, s1- -1 qiymat qaytaradi. Harflarning katta kichikligi hisobga 
olinadi.
stricmp(
s1,s2
)
s1 char massiv bilan s2 char massivni leksikografik jihatdan taqqoslaydi va int tipidagi 
son qaytaradi. Agar s1=s2 teng bo’lsa 
-
0, s1>s2 bo’lsa
-
1, s1- -1 
qaytaradi. Harflarning kata kichikligi hisobga olinmaydi. 
char
s1[100] = 
"abA"

char
s2[100] = 
"ABa"

cout<<
stricmp
(s1, s2); 
Natija: 0
strnicmp(
s1,s2,n
)
s1 va s2 satrlarning dastlabki n ta simvollarini taqqoslaydi va agar satrlar teng bo’lsa 0, 
s1>s1 bo’lsa >0, s1Harflarning kata kichikligi hisobga 
olinmaydi.
Simvollar bilan ishlash
 
isalnum(
c
)
agar c harf yoki raqam bo’lsa 
true
, boshqa holatlardan 
false
qaytaradi.
isalpha(
c
)
agar c harf bo’lsa 
true
, boshqa holatlardan 
false
qaytaradi.
isdigit(
c
)
agar c raqam bo’lsa 
true
, boshqa holatlardan 
false
qaytaradi.
islower(
c
)
agar c kichik ingliz harf bo’lsa 
true
, boshqa holatlardan 
false
qaytaradi.
isupper(
c
)
agar c katta ingliz harf bo’lsa 
true
, boshqa holatlardan 
false
qaytaradi.
isspace(
c
)
agar c probel bo’lsa 
true
, boshqa holatlardan 
false
qaytaradi.
toupper(
c
)
agar c simvoli kichik ingliz harfi bo’lsa u holda unga mos katta harfni qaytaradi. 
Aks 
holda o’zgartirilishsiz qoldiriladi.
O’zgartirish funksiyalari 
O’zgartirish funksiyalaridan foydalanish uchun 
#include
 
kerak bo‟ladi.
 


atof(
s
)
s1
satrni 
double tipidagi songa o’zgartiradi. 
char
s[100] = 
"123.45"

double


atof
(s); cout<atoi(
s
)
s1
satrni 
int tipidagi songa o’zgartiradi. 
atoll(
s
)
s1
satrni 
long long tipidagi songa o’zgartiradi. 
Funksiya
 
Tavsifi
 
itoa(a, 
s, k
)
a int sonini s char massivga k asosli sanoq sistemasida 
o’tkazadi. To’g’ridan
-
to’g’ri o’zini o’tkazish uchun sanoq 
sistemasi asosiga 10 yozish lozim. 
char
s[100]; 
int
a = 456; 
itoa
(a, 
s, 10); cout<lltoa(a, 
s, k
)
a long long tipidagi sonni sonini s char massivga k asosli sanoq 
sistemasida o’tkazadi. 
Standart kutibxonaning kiritish/chiqarish funksiyalari 

 
getchar(
с
)
Bitta belgili o’zgaruvchini(char) o’qib uning qiymatini qaytaradi. putchar(с) c char 
o’zgaruvchining qiymatini chiqarish.
char
с
= getchar(); putchar(
с
);
gets(
s
)

char
massivga toki ENTER bosilmagunga qadar bir qatorni o’qib oladi. puts(s) satrni
chiqarish funksiyasi. 
char
s[100]; 
gets
(s); 
puts
(s);
Masala. 


Berilgan satrdagi katta ingliz alvafiti harflari sonini, katta harflar sonini, kichik 
harflar sonini, raqamlar sonini, ma‟lum tinish belgilar sonini(
. , ! ? : ;
) aniqlaydigan 
dastur tuzing. Satr bir qatordan beriladi uzunligi 1000 simvoldan oshmaydi.
#include

#include

#include

using
namespace
std; 
int
main
() { 
char
s[1000]; 
gets
(s); 
int
cnt_lowers = 0;
int
cnt_uppers = 0; 
int
cnt_letters = 0; 
int
cnt_digits = 0;
int
cnt_punkt_marks = 0; 
for
(
int
i = 0; i < 
strlen
(s); i++) 
{
if
(s[i] >= 
'a'
&& s[i] <= 
'z'
) cnt_lowers++; 
if
(s[i] >= 
'A'
&& s[i] <= 
'Z'
) cnt_uppers++; 
if
(s[i] >= 
'0'
&& s[i] <= 
'9'
) cnt_digits++; 
if
(s[i]==
'.'
|| s[i]==
','
|| s[i]==
'!'
|| s[i]==
'?'
|| s[i]==
':'
|| s[i]==
';'
) cnt_punkt_marks++; 
if
((s[i] >= 
'a'
&& s[i] <= 
'z'
) || (s[i] >= 
'A'
&& s[i] <= 
'Z'
)) cnt_letters++; } 
cout<<
"Kichik harflar soni: "
<endl
;
cout<<
"Katta harflar soni: "
<endl
;
cout<<
"Harflar harflar soni: "
<endl
;
cout<<
"Raqamlar harflar soni: "
<endl
;
cout<<
"Tinish belgilari soni: "
<endl


C++ ning simvollar bilan ishlaydigan funksiyalari orqali 
ham tekshirishimiz mumkin. 
Masalani yechishning boshqa usuli: 
#include

#include

#include

using
namespace
std; 
int
main
() { 
char
s[1000]; 
gets
(s); 
int
cnt_lowers = 0;
int
cnt_uppers = 0;
int
cnt_letters = 0; 
int
cnt_digits = 0;
int
cnt_punkt_marks = 0;
for
(
int
i = 0; i < 
strlen
(s); i++) {
if
(
islower
(s[i])) 
if
(s[i] >= 
'A'
&& s[i] <= 
'Z'
)
cnt_uppers++;
if
(
isdigit
(s[i])) cnt_digits++;
if
(
ispunct
(s[i])) cnt_punkt_marks++;
if
(
isalpha
(s[i])) cnt_letters++; 



cout<<
"Kichik harflar soni: "
<endl
;
cout<<
"Katta harflar soni: "
<endl
;
cout<<
"Harflar harflar soni: "
<endl
;
cout<<
"Raqamlar harflar soni: "
<endl
;
cout<<
"Tinish belgilari soni: "
<endl


Mavzu: C++ da string 
Ishdan maqsad. 
C++ da satrlar bilan ishlash uchun kiritilgan 
string
sinfi bilan 
tanishish, uning metodlarini misollarda qo‟llash.
 
C++ dasturlash tilining C dasturlash tilidan farqlaridan biri C++ da satrlar bilan 
ishlash uchun
string 
sinfi mavjud
. string 
tipli o‟zgaruvchi o‟zida oldingi 
laboratoriya ishida ko‟rib chiqilgan
simvollar ketma-ketligini saqlash va amallar 
bajarish uchun foydalaniladi. string C++ ning standart kutbxonasi tarkibiga 
kiradi, shuning uchun u bilan ishlash uchun 
using
namespace
std ni yozish 
lozim.
#include

using
namespace
std; 
int
main
() { 
string
s;
cin>>s; 
cout<
Bu dasturda klaviatura orqali kiritilgan simvollar ketma-ketligini (satr) o‟qiydi 
va chiqarib beradi. cin>>s birinchi probelgacha bo‟lgan satrni o‟qiydi. Bir 
qatorni to‟liq kiritish uchun 
getline 
dan foydalanamiz:
string
s;
getline
(cin, s); 
cout<Satr uzunligi deb satrdagi simvollar soni ga aytiladi. Satr uzunlgini topish uchun 
satr o‟zgaruvchisidan keyin nuqta yozilib length() moydoniga mujorat qilanadi:
cout<Satr simvollari
0 dan s.length()-1 
gacha
indekslanadi.
string tipli satrning simvollariga murojat qilish char tipli massiv dagi kabi bo‟ladi. 
Misol. 
Bitta qatorda katta harflardan va probellalrdan iborat matn berilgan. Undagi 
A
harfini 
B
ga, 
B
harfini esa 
A
ga o‟zgartiruvchi dastur tuzing.


№ 
Kiruvchi ma’lumot 
Chiquvchi ma’lumot 
1
AB
BA
2
CBADE BREDA
CABDE AREDB
Yechimi:

Download 392,82 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




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