Рядки C++ — це послідовності символів, що зберігаються в масиві char. Рядки використовуються для зберігання слів і тексту. Вони також використовуються для зберігання даних, наприклад чисел та інших типів інформації. Рядки в C++ можна визначити за допомогою std::string клас або Масиви символів у стилі C.

1. Рядки стилю C
Ці рядки зберігаються як звичайний старий масив символів, що закінчуються символом a нульовий символ ' ' . Це тип рядків, які C++ успадкував від мови C.
Синтаксис:
char str[] = 'techcodeview.com';>
приклад:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Вихід
techcodeview.com>
2. std::string Клас
Це нові типи рядків, які представлено в C++ як клас std::string, визначений у файлі заголовка. Це забезпечує багато переваг перед звичайними рядками у стилі C, наприклад динамічний розмір, функції-члени тощо.
Синтаксис:
std::string str('techcodeview.com');> приклад:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Вихід
techcodeview.com>
Ще один спосіб створити рядки, які мають один і той же символ, що повторюється знову і знову.
Синтаксис:
std::string str(number,character);>
приклад:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Вихід:
ggggg>
Способи визначення рядка в C++
Рядки можна визначити кількома способами в C++. Доступ до рядків можна отримати зі стандартної бібліотеки за допомогою класу string. Для визначення рядків також можна використовувати масиви символів. Рядок надає багатий набір функцій, таких як пошук і маніпулювання, які є широко використовуваними методами. Незважаючи на те, що цей метод менш просунутий, ніж клас string, він все ще широко використовується, оскільки він більш ефективний і простий у використанні. Способи визначення рядка в C++:
- Використання ключового слова String
- Використання рядків у стилі C
1. Використання рядка Keyword
Зручніше визначати рядок за допомогою ключового слова string замість використання ключового слова array, оскільки його легко написати та зрозуміти.
Синтаксис:
string s = 'techcodeview.com'; string s('techcodeview.com');> приклад:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Вихід
s = techcodeview.com str = techcodeview.com>
2. Використання рядків C-стилю
Використання функцій бібліотек рядків у стилі C, таких як strcpy(), strcmp() і strcat() для визначення рядків. Цей метод є більш складним і не так широко використовується, як два інших, але він може бути корисним при роботі зі застарілим кодом або коли вам потрібна продуктивність.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> приклад:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Вихід
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Ще один приклад рядка в стилі C:
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Вихід
Your string is= Geeeks for Geeks>
Як використовувати рядковий ввід у C++
Введення рядка означає прийняття рядка від користувача. У C++. У нас є різні типи введення даних від користувача, які залежать від рядка. Найпоширенішим способом є використання вхідних даних прийом їжі ключове слово з оператором вилучення (>>) у C++. Методи для отримання рядка як вхідних даних:
- прийом їжі
- getline
- рядковий потік
1. За допомогою Cin
Найпростіший спосіб отримати рядковий ввід - це використовувати прийом їжі разом із оператором вилучення потоку (>>).
Синтаксис:
cin>>s;>>
приклад:
C++
jdbc jdbc
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Вихід
Enter String String is:>
Вихід:
Enter String techcodeview.com String is: techcodeview.com>
2. Використання getline
The функція getline() у C++ використовується для читання рядка з вхідного потоку. Він оголошений у файлі заголовка.
Синтаксис:
getline(cin,s);>
приклад:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>Вихід
Enter String String is:>
Вихід:
Enter String techcodeview.com String is: techcodeview.com>
3. Використання stringstream
The клас stringstream в C++ використовується для одночасного введення кількох рядків.
Синтаксис:
stringstream stringstream_object(string_name);>
приклад:
C++
javascript onclick
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> оператор читатиме з об’єкта stringstream>> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Вихід
techcodeview.com to the Moon>
Як передати рядки функціям?
Подібно до того, як ми передаємо масив у функцію, рядки в C++ можна передати функціям як масиви символів. Ось приклад програми:
приклад:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Вихід
Passed String is: techcodeview.com>
Покажчики та рядки
Покажчики в C++ є символічними представленнями адрес. Вони дозволяють програмам імітувати виклик за посиланням, а також створювати динамічні структури даних і керувати ними. Використовуючи покажчики, ми можемо отримати перший символ рядка, який є початковою адресою рядка. Як показано нижче, до заданого рядка можна отримати доступ і надрукувати його за допомогою вказівників.
приклад:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Вихід
Geeksforgeeks>
Різниця між масивом String і Character у C++
Основна відмінність між рядком і масивом символів полягає в тому, що рядки незмінні, а масиви символів – ні.
| Рядок | Масив символів |
|---|---|
| Рядки визначають об'єкти, які можуть бути представлені як потоки рядків. | Нульовий символ завершує масив символів. |
| У рядках не відбувається розпаду масиву, оскільки рядки представлені як об’єкти. | Загроза розпад масиву присутній у випадку масиву символів |
| Клас string надає численні функції для маніпулювання рядками. | Масиви символів не пропонують вбудованих функцій для маніпулювання рядками. |
| Пам'ять розподіляється динамічно. | Розмір масиву символів має бути виділено статично. |
Дізнайтеся більше про різниця між рядками та масивами символів у C++
Рядкові функції C++
C++ надає деякі вбудовані функції, які використовуються для маніпулювання рядками, такі як функції strcpy() і strcat() для копіювання та конкатенації рядків. Деякі з них:
| функція | опис |
|---|---|
| довжина() | Ця функція повертає довжину рядка. |
| своп() | Ця функція використовується для обміну значеннями 2 рядків. |
| розмір() | Використовується для визначення розміру рядка |
| змінити розмір() | Ця функція використовується для зміни довжини рядка до заданої кількості символів. |
| знайти() | Використовується для пошуку рядка, який передається в параметрах |
| відсунути() | Ця функція використовується для просування переданого символу в кінець рядка |
| pop_back() | Ця функція використовується для видалення останнього символу з рядка |
| очистити() | Ця функція використовується для видалення всіх елементів рядка. |
| strncmp() | Ця функція порівнює щонайбільше першу кількість байтів обох переданих рядків. |
| strncpy() | Ця функція подібна до функції strcpy(), за винятком того, що копіюється щонайбільше n байт src |
| strrchr() | Ця функція визначає місце останнього входження символу в рядок. |
| зламаний() | Ця функція додає копію вихідного рядка в кінець цільового рядка |
| знайти() | Ця функція використовується для пошуку певного підрядка всередині рядка та повертає позицію першого символу підрядка. |
| замінити() | Ця функція використовується для заміни кожного елемента в діапазоні [перший, останній), який дорівнює старому значенню, новим значенням. |
| substr() | Ця функція використовується для створення підрядка з заданого рядка. |
| порівняти() | Ця функція використовується для порівняння двох рядків і повертає результат у вигляді цілого числа. |
| стерти() | Ця функція використовується для видалення певної частини рядка. |
Функції ітератора рядків C++
У C++ вбудовані функції ітератора рядка надають програмісту простий спосіб модифікувати та проходити елементи рядка. Ці функції:
| Функції | опис |
|---|---|
| почати() | Ця функція повертає ітератор, що вказує на початок рядка. |
| кінець() | Ця функція повертає ітератор, який вказує на кінець рядка. |
| rfind() | Ця функція використовується для пошуку останнього входження рядка. |
| rbegin() | Ця функція повертає зворотний ітератор, що вказує на кінець рядка. |
| render() | Ця функція повертає зворотний ітератор, що вказує на початок рядка. |
| cbegin() | Ця функція повертає const_iterator, що вказує на початок рядка. |
| декілька() | Ця функція повертає const_iterator, що вказує на кінець рядка. |
| crbegin() | Ця функція повертає const_reverse_iterator, що вказує на кінець рядка. |
| crend() | Ця функція повертає const_reverse_iterator, що вказує на початок рядка. |
приклад:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Вихід
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Функції місткості рядків
У C++ функції ємності рядка використовуються для керування розміром і ємністю рядка. Основні функції потужності включають:
| функція | опис |
|---|---|
| довжина() | Ця функція використовується для повернення розміру рядка |
| місткість() | Ця функція повертає ємність, виділену рядку компілятором |
| змінити розмір() | Ця функція дозволяє нам збільшувати або зменшувати розмір рядка |
| shrink_to_fit() | Ця функція зменшує ємність і робить її рівною мінімальній. |
приклад:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Вихід
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
На завершення ця стаття пояснює, як рядки можуть бути визначені в C++ за допомогою масивів символів і класів рядків. Клас string надає більш розширені функції, тоді як масив символів надає базові функції, але є ефективним і простим у використанні. У цій статті ми також обговорили різні методи отримання інформації від користувача.
Щоб дізнатися більше про клас std::string, зверніться до статті – std::string клас у C++