5. C++da satrlar va simvollar massivi .
C ++ da satrlarni saqlash uchun belgilar massivi ishlatiladi. Bular bir xil massivlardir, chunki biz C++ dagi massivlar haqida maqolada ko'rib chiqdik, ammo ular raqamli ma'lumotlarni emas, balki belgilar ma'lumotlarini saqlaydi. Siz qo'shni xotira yacheykalarida ketma-ket joylashtirilgan bunday massivning belgilarini tasavvur qilishingiz mumkin - har bir katak bitta belgini saqlaydi va bitta baytni egallaydi. Bir bayt joy egallashining sababi belgilar qatorining har bir elementi char tipida ekanligidadir. Har bir bunday satrning oxirgi belgisi '\0' belgisi (nol belgi). Masalan:
char satr[11] = {'D', 'a', 's', 't', 'u', 'r', 'l', 'a', 's' , 'h', '\0'};
Satr shu tarzda e'lon qilinadi - biz char tipidagi massiv yaratamiz, kvadrat qavsdagi o'lcham ixtiyoriy (kompilyator uni hisoblab chiqadi), = operatori va ikkita tirnoq bilan kerakli belgini yozamiz. Ya'ni, biz massivni satrli konstanta bilan initsializatsiyalaymiz:
#include
using namespace std;
int main()
{
char str[] = "Dasturlash"; // '\0' bevosita mavjud bo'ladi
cout << str << endl;
return 0;
}
String turidagi satrlar.
Xulossa.( string sinfining afzalligi shundaki, ulardan foydalanish oson va ko'plab usullarni qo'llab-quvvatlaydi. Biroq, satrga mos keladigan obyektlar sekin ishlov beriladi. Ba'zi hollarda ma'lumotlar yo'qolishi yoki satrning yaxlitligi buzilishi mumkin, keyin ularni ko'rish va tekshirish imkoniyati bo'lmaydi.
)
C++ tilida standart satr turiga qo’shimcha sifatida string turi kiritilgan va string sinfi ko’rinishida amalga oshirilgan. Bu turdagi satr uchun ‘\0’ belgisi tugash belgisi hisoblanmaydi va u oddiygina belgilar massivi sifatida qaraladi. string turida satrlar uzunligining bajariladigan amallar natijasida dinamik ravishda o’zgarib turishi, uning tarkibida bir qator funksiyalar aniqlanganganligi bu tur bilan ishlashda ma’lum bir qulayliklar yaratadi.
string sinfidagi obyektlar bilan quyidagi operatorlardan foydalanish mumkin:
= – o’zlashtirish
+ – birlashtirish (satrlarni birlashtirish)
+= – birlashtirish va ta‘minlash
== – aynan tenglik
! = – teng emaslik
< – kichik
<= – kichik yoki teng
> – katta
> = - katta yoki teng
[] - indeksatsiya
Misol. Asosiy amallarning qo’llanilishi doir misollar
#include
#include
using namespace std;
int main()
{
string s1 = "s-1";
string s2 = "s-2";
string s3;
bool b;
//Ta'minlash
s3 = s1; // s3 = "s-1"
//Ikkita satrni birlashtirish
s3 = s3 + s2; // s3 = "s-1s-2"
// Ta'minlash va birlashtirish
s3 = "s-3";
s3 += "abc"; // s3 = "s-3abc"
// amal '==' - Satrlarni taqqoslash
b = s2==s1; // b = false
b = s2=="s-2"; // b = true
// Satrlarni taqqoslash
s1 = "s1";
s2 = "s2";
b = s1 != s2; // b = true
s1 = "abcd";
s2 = "de";
b = s1 > s2; // b = false
b = s1 < s2; // b = true
s1 = "abcd";
s2 = "ab";
b = s1 >= s2; // b = true
b = s1 <= s2; // b = false
b = s2 >= "ab"; // b = true
// Indeksatsiya
char c;
s1 = "abcd";
c = s1[2]; // c = 'c'
c = s1[0]; // c = 'a'
return 0;
}
Do'stlaringiz bilan baham: |