C++ da Matn (String) ma’lumot turi
C++ da String (Matn) ma’lumot turlari biror bir matn yoki belgilarni saqlash uchun ishlatiladi va qo’shtirnoq ( “ “ ) ichida yoziladi.
The + operator can be used between strings to add them together to make a new string. This is called concatenation:
Ushbu ma’lumot turidan foydalana olishimiz uchun ham huddi <iostream>
ga o’xshab <string>
kutubonasini dasturimizga qo’shishimiz kerak bo’ladi.
Lekin ba’zida dastur muxarirlaridan fodalanyotganimizda kutubxonani qo’shishni unutsak ham dastur ishlayveradi. Huddi quidagi misoldagidek :
Dastur ishga tushirilganida uning natijasi ism o’zgaruvchisining qiymati ekranga chop qilinishi ya’ni “ Yodgor “ ismini terminalimizda ko’rishimiz bo’ladi. Qanday qilib <string>
kutubxonasini dasturimizga qo’shmasdan string ma’lumot turi bilan ishlay oldik ?
Gap shundaki biz kiritgan <iostream>
kutubxonasi C++ standart kutubxonalarining ba’zi komponentlari jumladan std::string <string>
kutubxonasiga bog’liq hisoblanadi. Shuning uchun ham yuqoridagi ko’dimizda hechqanday xatolik kelib chiqmadi. Dasturingiz hechqanday xatolikka uchramasligi va yangi versialarda ham ishlay olishi uchun <string>
kutubxonasini qo’shishni tafsiya qilamz.
Matnlarni birlashtirish (String Concatenation)
C++ da ikkita matnni bir biriga qo’shgan holda bitta umumiy matn hosil qilish uchun “ + “ opeatoridan foydalanish mumkin. C++ dasturlash tilida “ + “ operatoridan sonlarni bir biriga qo’shishda ham string ya’ni matnlarni bir biriga bog’lashda ham ishlatiladi. Sonlar (int) ma’lumot turi bilan ishlatilganda natija ham son (int) bo’ladi. Agar strin (matn) va son (int) ma’lumot turlarini bir biriga qo’shmoqchi bo’lsangiz dastur xatolikka uchraydi.
Natijadan ko’rib turganingizdek matnlar qo’shildi lekin o’qish uchun unchalik ham qulay usulda emas. Natijani yanada o’qishga qulay qilish uchun quidagicha soddaroq usuldan foydalansak bo’ladi.
Bunday natija o’qishga ancha qulayroq.
Matnlarni bir biri bilan bog’lash uchun “ + “ operatori yagona usul emas. Biz append() funksiyasidan ham matnlarni bog’lashda foydalanishimiz mumkin
length() funksiyasi
String (matn) uzunligini aniqlashda length() funksiyasidan foydalanishingiz mumkin.
Matinga murojaat qilish
C++ da String (matn) ga murojat qilishning asosan ikki xil usuli mavjud. Bulardan biri index orqali murojaat qilish xisoblanadi. Dasturlash olamida indexlar doim 0 dan boshlanadi ya’ni 0 birinchi qiymat hisoblanadi.
Yuqoridagi ko’dimizda biz ismSharifi nomli o’zgaruvchimizni 0 chi indexdagi qiymatiga murojaat qildik va natijada dastur bizga “ Y “ ya’ni ismSharifi nomli o’zgaruvchimizni qiymatidagi birinchi harfni bizga chiqarib berdi.
Huddi shunday tartibda biz index orqali murojaat qilgan holda qiymatni ham o’zgartirishimiz mumkin. Misol uchun:
Ko’rib turganingizdek salom nomli o’zgaruvchimizda index orqali murojaat qilib birinchi harfini o’zgartirdik.
Yana bir usuli at() funksiyasidan foydalangan holda matnga murojaat qilish hisoblanadi. Misol uchun:
Huddi shu ko’rinishda qiymatni o’zgartirishingiz ham mumkin:
at() funksiyasi ichiga argument sifatida index qabul qiladi va shu indexdagi qiymat bilan amal bajariladi.
Matndagi maxsus belgilar
Ba’zi matinlarda maxsus belgilardan foydalanishga to’g’ri keladi aytaylik ajrtilgan so’zlarni qo’shtirnoq ichida yozish kerak. C++ da String (matn) ma’lumot turi ham qo’shtirnoq ichida yoziladi agar biz string ichida yana bir qo’shtirnoq ochadigan bo’lsak dastur xatolikka uchraydi. Bunday holatlarni oldini olish uchun quidagicha yechim mavjud:
Foydalanuvchidan to’liq matn qabul qilish
Biz avval foydalangan CIN funksiyasi orqali foydalanuvchidan to’liq matn qabu qila olmaymiz ya’ni foydalanuvchi ikki yoki undan ortiq so’z kiritmoqchi bo’lsa CIN funksiyasi faqatgina bitta so’zni ekranga chop qiladi. Foydalanuvchidan to’liq matn qabul qilish uchun getline() funksiyasidan foydalanamiz.
getline() funksiyasi o’ziga ikkita parametr qabul qiladi bulardan biri CIN va kiruvchi qiymatni saqlash uchun o’zgaruvchi.