Satrlar (string) — matn bilan ishlashning asosi. Dasturlashda matn hamma joyda: foydalanuvchi ismi, xabar, fayl nomi, xatolik matni. C++’da matn bilan ishlashning ikki yo’li bor: eski C uslubidagi belgilar massivi va zamonaviy string klassi. Biz asosan qulay va xavfsiz string bilan ishlaymiz.
string — C++ standart kutubxonasidagi matnni saqlash va u ustida ishlash uchun mo’ljallangan klass. U belgilar ketma-ketligini o’z ichida saqlaydi va uzunligini avtomatik boshqaradi.
Satr yaratish
string turini ishlatish uchun <string> kutubxonasini ulash tavsiya etiladi (ko’p hollarda <iostream> bilan birga keladi):
#include <iostream>
#include <string>
using namespace std;
int main() {
string ism = "Master Sherkulov";
string salom = "Assalomu alaykum";
cout << salom << ", " << ism << endl;
return 0;
}
Assalomu alaykum, Master Sherkulov
Satrlarni birlashtirish
Ikki satrni + operatori bilan ulash mumkin — bu konkatenatsiya deb ataladi:
#include <iostream>
#include <string>
using namespace std;
int main() {
string ism = "Farrux";
string familiya = "Sherkulov";
string toliq = ism + " " + familiya;
cout << toliq << endl;
return 0;
}
Farrux Sherkulov
Satr uzunligi va belgilar
Satr uzunligini length() yoki size() metodi beradi, alohida belgiga esa indeks orqali murojaat qilinadi (indeks noldan boshlanadi):
#include <iostream>
#include <string>
using namespace std;
int main() {
string matn = "UzbekDevs";
cout << "Uzunligi: " << matn.length() << endl;
cout << "Birinchi belgi: " << matn[0] << endl;
cout << "Oxirgi belgi: " << matn[matn.length() - 1] << endl;
return 0;
}
Uzunligi: 9
Birinchi belgi: U
Oxirgi belgi: s
Foydali satr metodlari
string klassi ko’plab qulay metodlarga ega. Eng muhimlarini jadvalda ko’rib chiqamiz:
| Metod | Vazifasi |
|---|---|
length() / size() |
uzunlikni qaytaradi |
substr(i, n) |
qism satrni ajratadi |
find("x") |
qism qayerdaligini topadi |
append("x") |
oxiriga qo’shadi |
empty() |
bo’shligini tekshiradi |
Amalda:
#include <iostream>
#include <string>
using namespace std;
int main() {
string matn = "UzbekDevs platformasi";
cout << matn.substr(0, 9) << endl; // dastlabki 9 belgi
cout << matn.find("platforma") << endl; // qayerdan boshlanadi
return 0;
}
UzbekDevs
10
substr(0, 9) boshidan 9 ta belgini oldi, find esa “platforma” so’zi 10-indeksdan boshlanishini ko’rsatdi.
Klaviaturadan satr o’qish
Foydalanuvchidan matn olish uchun getline ishlatiladi — u probelli to’liq qatorni o’qiydi:
#include <iostream>
#include <string>
using namespace std;
int main() {
string ism;
cout << "Ismingizni kiriting: ";
getline(cin, ism);
cout << "Salom, " << ism << "!" << endl;
return 0;
}
Ismingizni kiriting: Farrux Sherkulov
Salom, Farrux Sherkulov!
Diqqat: oddiy cin >> ism faqat birinchi so’zni oladi (probelgacha), getline esa butun qatorni o’qiydi. Ism-familiya kabi probelli matn uchun getline to’g’ri tanlov.
Xulosa
Bu bo’limda string klassi bilan satr yaratish, + orqali birlashtirish, uzunlik va indeks, foydali metodlar (substr, find) hamda getline bilan matn o’qishni ko’rib chiqdik. Zamonaviy C++’da matn uchun doim string ishlating. Keyingi darsda matematik funksiyalarga o’tamiz.