C++ satrlar (C-style Strings)
String - bu belgilar to'plami. C++ tilida keng tarqalgan ikki turdagi satrlar mavjud:
C dasturlashda belgilar to'plami arrays shaklida saqlanadi. Bu C++ dasturlashda ham qo'llab-quvvatlanadi. Shuning uchun u C-strings deb ataladi.
C-satrlari - bu null belgi bilan yakunlangan char tipidagi massivlar, ya'ni � (null belgining ASCII qiymati 0).
char str[] = "C++";
Yuqoridagi kodda str satr bo'lib, u 4 ta belgidan iborat.
"C++" uchta belgidan iborat bo'lsa-da, � null belgisi avtomatik ravishda satr oxiriga qo'shiladi.
char str[4] = "C++";
char str[] = {'C','+','+','\0'};
char str[4] = {'C','+','+','\0'};
Massivlar singari, satr uchun ajratilgan barcha joydan foydalanish shart emas. Masalan:
char str[100] = "C++";
Foydalanuvchi tomonidan kiritilgan qatorni ko'rsatish uchun C++ dasturi.
#include <iostream>
using namespace std;
int main()
{
char str[100];
cout << "Enter a string: ";
cin >> str;
cout << "You entered: " << str << endl;
cout << "\nEnter another string: ";
cin >> str;
cout << "You entered: " << str << endl;
return 0;
}
Chiqish
Enter a string: C++
You entered: C++
Enter another string: Programming is fun.
You entered: Programming
E'tibor bering, ikkinchi misolda "Programming is fun" o'rniga faqat "Programming" ko'rsatiladi.
Buning sababi, >> ekstraktsiya operatori C tilida scanf() sifatida ishlaydi va " " bo'shlig'ini tugatish belgisi sifatida ko'rib chiqadi.
Foydalanuvchi tomonidan kiritilgan butun qatorni o'qish va ko'rsatish uchun C++ dasturi.
#include <iostream>
using namespace std;
int main()
{
char str[100];
cout << "Enter a string: ";
cin.get(str, 100);
cout << "You entered: " << str << endl;
return 0;
}
Chiqish
Enter a string: Programming is fun.
You entered: Programming is fun.
Bo'sh joy bo'lgan matnni o'qish uchun cin.get funksiyasidan foydalanish mumkin. Bu funksiya ikkita argumentni oladi.
Birinchi argument qatorning nomi (satrning birinchi elementining manzili), ikkinchi argument esa massivning maksimal hajmidir.
Yuqoridagi dasturda str satr nomi, 100 esa massivning maksimal hajmi.
C++ da siz satrlarni ushlab turish uchun string ob'ektini ham yaratishingiz mumkin.
char massivlaridan farqli o'laroq, string ob'ektlari qat'iy uzunlikka ega emas va sizning talabingizga ko'ra kengaytirilishi mumkin.
#include <iostream>
using namespace std;
int main()
{
// String ob'ektini e'lon qilish
string str;
cout << "Enter a string: ";
getline(cin, str);
cout << "You entered: " << str << endl;
return 0;
}
Chiqish
Enter a string: Programming is fun.
You entered: Programming is fun.
Bu dasturda str qatori e'lon qilinadi. Keyin foydalanuvchidan string so'raladi.
cin>> yoki cin.get() funksiyasidan foydalanish o‘rniga, kiritilgan matn qatorini getline() yordamida olishingiz mumkin.
getline() funksiyasi kirish oqimini birinchi parametr sifatida qabul qiladi, bu cin va str saqlanadigan chiziqning joylashuvi.
Satrlar funksiyaga o'xshash tarzda arrays are passed to a function uzatiladi.
#include <iostream>
using namespace std;
void display(char *);
void display(string);
int main()
{
string str1;
char str[100];
cout << "Enter a string: ";
getline(cin, str1);
cout << "Enter another string: ";
cin.get(str, 100, '\n');
display(str1);
display(str);
return 0;
}
void display(char s[])
{
cout << "Entered char array is: " << s << endl;
}
void display(string s)
{
cout << "Entered string is: " << s << endl;
}
Chiqish
Enter a string: Programming is fun.
Enter another string: Really?
Entered string is: Programming is fun.
Entered char array is: Really?
Yuqoridagi dasturda ikkita satr kiritish talab qilinadi. Ular mos ravishda str va str1 da saqlanadi, bunda str char massivi va str1 string obyektidir.
Keyin, bizda satrni satrga chiqaradigan ikkita display() funksiyasi mavjud.
Ikkala funksiya o'rtasidagi farq faqat parametrdir.
Birinchi display() funksiyasi char massivini parametr sifatida oladi, ikkinchisi esa qatorni parametr sifatida oladi.
Bu jarayon funksiyani haddan tashqari yuklash deb ataladi. Function Overloading haqida ko'proq bilib oling.
Shuningdek o'qing: