Amaliy qism: Tasodifiy belgilarni hosil qilish


Download 1.86 Mb.
bet6/13
Sana07.05.2023
Hajmi1.86 Mb.
#1439378
1   2   3   4   5   6   7   8   9   ...   13
Bog'liq
S-D1-ma\'ruza-4

Ogohlantirish. s satrda belgilarga murojaatni amalga oshirishda satr hajmidan chiqib ketish – dastur bajarilishida xatolikka olib keladi. Buning oldini olish uchun, satr hajmini s.length()–1 deb belgilab olish lozim. Masalan, s.at(s.length()) yoki s[s.length()] deb yozish xato hisoblanadi.


7.3. Satrlarni birlashtirish
C++ ikki satrni birlashtirish uchun + operatorini taqdim etadi. Quyida keltirilgan misolda s1 va s2 satrlarini birlashtirib, s3 satriga ta’minlanishini ko`rish mumkin:
string s3 = s1 + s2;
O`rnatilgan qoidali ta’minlash operatorini ham satrlarni birlashtirishda qo`llash mumkin. Masalan, quyidagi kod xabar nomli, “C++ ga xush kelibsiz!” qiymatga ega bo`lgan satrga “ va dasturlash – qiziqarli” satrini qo`shib ta’minlaydi:
xabar += “ va dasturlash – qiziqarli”;
Bunda xabar ning yangi qiymati “C++ ga xush kelibsiz va dasturlash – qiziqarli” gat eng bo`ladi. Shuningdek, satrga belgini ham qo`shib ta’minlashimiz mumkin:
string s = "ABC";
s += 'D';
Yangi s ning qiymati – “ABCD”.
Eslatma. Yangi satrga ikkita satrli ma’lumotni qo`shib ta’minlash xato hisoblanadi. Masalan quyidagi kabi:
string shaharlar = "London" + "Parij";
Quyida berilgan kod esa to`g`ri, chunki bunda avvaldan qiymatga ega s satriga “London” satri va keyin “Parij” satri qo`shilyapti.
string s = "Nyu York";
string shaharlar = s + "London" + "Parij";


7.4. Satrlarni taqqoslash
C++ da ikki satrni taqqoslash uchun ==, !=, <, <=, >, >= munosabat operatorlaridan foydalanish mumkin. Bu jarayon satrdagi belgilarni birma-bir, chapdan o`ngga qarab solishtirish orqali amalga oshiriladi. Masalan:
string s1 = "ABC";
string s2 = "ABE";
cout << (s1 == s2) << endl; // 0 ni ko`rsatadi (false tushuniladi)
cout << (s1 != s2) << endl; // 1 ni ko`rsatadi (true tushuniladi)
cout << (s1 > s2) << endl; // 0 ni ko`rsatadi (false tushuniladi)
cout << (s1 >= s2) << endl; // 0 ni ko`rsatadi (false tushuniladi)
cout << (s1 < s2) << endl; // 1 ni ko`rsatadi (true tushuniladi)
cout << (s1 <= s2) << endl; // 1 ni ko`rsatadi (true tushuniladi)
s1 > s2 holatni ko`rib chiqamiz. Dastlab s1 va s2 lardan birinchi belgilar (A bilan A)ning tengligi tekshiriladi. Tenglik o`rinli. Keyin ikkinchi belgilar (B bilan B) ning tengligi tekshiriladi. Tenglik o`rinli. Keyingi qadamda ikkinchi belgilar (C bilan E) ning tengligi tekshiriladi. Tenglik 0 qiymat qaytaradi. Chunki, C belgisi E belgisidan kichik.



Download 1.86 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   13




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