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.