11. String va matnlar¶
Dasturlarda ko‘pincha matn bilan ishlashimiz kerak bo‘ladi.
Masalan:
Salom
Ali
Toshkent
C++ dasturlash tili
C++ da matn bilan ishlash uchun string turidan foydalanamiz.
string nima?¶
string bir nechta belgidan tashkil topgan matnni saqlaydi.
Masalan:
string ism = "Ali";
Bu yerda ism o‘zgaruvchisida:
Ali
matni saqlanmoqda.
string ishlatish uchun:
#include <string>
kutubxonasini qo‘shish mumkin.
Masalan:
#include <iostream>
#include <string>
using namespace std;
Oddiy string misoli¶
#include <iostream>
#include <string>
using namespace std;
int main() {
string ism = "Ali";
cout << ism;
return 0;
}
Natija:
Ali
Foydalanuvchidan string olish¶
cin yordamida matn olish mumkin.
string ism;
cout << "Ismingiz: ";
cin >> ism;
cout << "Salom, " << ism;
Agar foydalanuvchi:
Ali
kiritsa:
Salom, Ali
chiqadi.
cin ning cheklovi¶
cin bo‘sh joygacha bo‘lgan matnni oladi.
Masalan:
string ism;
cin >> ism;
Foydalanuvchi:
Ali Valiyev
deb kiritsa, faqat:
Ali
olinadi.
Valiyev olinmaydi.
getline()¶
To‘liq qatorni olish uchun getline() ishlatiladi.
Masalan:
string ism;
getline(cin, ism);
Agar foydalanuvchi:
Ali Valiyev
kiritsa, to‘liq:
Ali Valiyev
saqlanadi.
getline() bilan to‘liq dastur¶
#include <iostream>
#include <string>
using namespace std;
int main() {
string ism;
cout << "To'liq ismingizni kiriting: ";
getline(cin, ism);
cout << "Salom, " << ism;
return 0;
}
String uzunligini topish¶
Matn nechta belgidan iboratligini bilish uchun .length() ishlatiladi.
Masalan:
string ism = "Ali";
cout << ism.length();
Natija:
3
Chunki:
A
l
i
uchta belgi bor.
size()¶
String uzunligini .size() yordamida ham olish mumkin.
string ism = "Ali";
cout << ism.size();
Natija:
3
Hozircha .length() va .size() ikkalasi ham matn uzunligini topishini bilib olish kifoya.
String ichidagi belgilar¶
String ichidagi har bir belgiga indeks orqali murojaat qilish mumkin.
Masalan:
string ism = "Ali";
cout << ism[0];
Natija:
A
Indekslar 0 dan boshlanadi.
Shuning uchun:
ism[0] → A
ism[1] → l
ism[2] → i
String belgisini o‘zgartirish¶
String ichidagi belgini o‘zgartirish mumkin.
Masalan:
string ism = "Ali";
ism[0] = 'O';
Endi:
Oli
bo‘ladi.
Stringlarni birlashtirish¶
Ikki yoki undan ko‘p matnni birlashtirish mumkin.
Buning uchun + operatoridan foydalanamiz.
Masalan:
string ism = "Ali";
string familiya = "Valiyev";
string toliqIsm = ism + " " + familiya;
cout << toliqIsm;
Natija:
Ali Valiyev
Stringga matn qo‘shish¶
Masalan:
string matn = "Salom";
matn += " Ali";
cout << matn;
Natija:
Salom Ali
+= mavjud matnga yangi matn qo‘shadi.
Stringni taqqoslash¶
Ikki stringni ham solishtirish mumkin.
Masalan:
string ism1 = "Ali";
string ism2 = "Ali";
if (ism1 == ism2) {
cout << "Ismlar bir xil.";
}
Natija:
Ismlar bir xil.
Stringlar teng emasligini tekshirish¶
!= ishlatish mumkin.
string ism1 = "Ali";
string ism2 = "Vali";
if (ism1 != ism2) {
cout << "Ismlar har xil.";
}
Natija:
Ismlar har xil.
Stringni for bilan ko‘rish¶
Stringni ham massivga o‘xshab indekslar orqali ko‘rish mumkin.
Masalan:
string ism = "Ali";
for (int i = 0; i < ism.length(); i++) {
cout << ism[i] << endl;
}
Natija:
A
l
i
Bu usul matndagi har bir belgini alohida ko‘rish uchun foydali.
Katta va kichik harflar¶
C++ da:
"Ali"
va:
"ali"
bir xil emas.
Masalan:
string a = "Ali";
string b = "ali";
cout << (a == b);
Natija:
0
Chunki katta A va kichik a farq qiladi.
Oddiy dastur¶
Foydalanuvchidan ism va familiya olamiz.
#include <iostream>
#include <string>
using namespace std;
int main() {
string ism;
string familiya;
cout << "Ismingiz: ";
cin >> ism;
cout << "Familiyangiz: ";
cin >> familiya;
string toliqIsm = ism + " " + familiya;
cout << "To'liq ism: " << toliqIsm;
return 0;
}
Masalan:
Ismingiz: Ali
Familiyangiz: Valiyev
Natija:
To'liq ism: Ali Valiyev
Amaliy mashqlar¶
1-mashq¶
Quyidagi stringni yarating:
"Salom, C++!"
Uni ekranga chiqaring.
2-mashq¶
Foydalanuvchidan ismini oling va uning uzunligini chiqaring.
Masalan:
Ism: Husan
Natija:
Uzunligi: 5
3-mashq¶
Foydalanuvchidan ism va familiya oling.
Ularni birlashtirib, to‘liq ismni chiqaring.
4-mashq¶
Quyidagi matndagi barcha belgilarni for yordamida alohida qatorda chiqaring:
C++ Programming
5-mashq¶
Ikki ism oling.
Agar ular bir xil bo‘lsa:
Ismlar bir xil.
aks holda:
Ismlar har xil.
chiqaring.
Muhim narsalarni eslab qoling¶
string matn saqlash uchun ishlatiladi.
Masalan:
string ism = "Ali";
cin bitta so‘z olish uchun qulay:
cin >> ism;
getline() to‘liq qator olish uchun ishlatiladi:
getline(cin, ism);
String uzunligini:
ism.length()
yoki:
ism.size()
bilan olish mumkin.
Stringdagi belgiga indeks orqali murojaat qilamiz:
ism[0]
Stringlarni + yordamida birlashtirish mumkin:
string ism = "Ali";
string familiya = "Valiyev";
string toliqIsm = ism + " " + familiya;
string C++ dasturlarida matn bilan ishlash uchun eng ko‘p ishlatiladigan turlardan biridir.