logo

Рядкові функції в C++

Рядок називається масивом символів. У C++ потік/послідовність символів зберігається в масиві char. C++ містить клас std::string, який використовується для представлення рядків. Це один із найфундаментальніших типів даних у C++ і він має величезний набір вбудованих функцій. У цій статті ми розглянемо функції рядкових обчислень.

Що таке std::string?

std::string є класом у C++, починаючи з C++98. Цей клас є стандартним представленням текстового рядка. Він містить деякі типові рядкові операції, такі як пошук, заміна, об’єднання, порівняння тощо. Він присутній у файл заголовка.



Оголошення та ініціалізація рядка

std::string company = 'techcodeview.com!';>

Часто використовувані рядкові функції в C++

Клас std::string містить функції для забезпечення деяких загальних операцій із рядками. У наведеній нижче таблиці містяться деякі з найпоширеніших функцій у C++:

Так ні.

Категорія



Функції та оператори

Функціональність

1.



не null в js
Довжина рядка

length() або size()

Він поверне довжину рядка.

2.

Доступ до символів

Індексація (з використанням array[index])

Щоб отримати доступ до окремих символів за допомогою індексації масиву.

в()

Використовується для доступу до символу за вказаним індексом.

3.

Додавання та об’єднання рядків

+ Оператор

Оператор + використовується для об’єднання двох рядків.

додати()

Функція append() додає один рядок у кінець іншого.

4.

Порівняння рядків

== Оператор

Ви можете порівнювати рядки за допомогою оператора ==.

порівняти()

Функція compare() повертає ціле значення, яке вказує на результат порівняння.

5.

Підрядки

substr()

Використовуйте функцію substr(), щоб отримати підрядок із рядка.

6.

Пошук

знайти()

Функція find() повертає позицію першого входження підрядка.

7.

Зміна рядків

замінити()

Використовуйте функцію replace(), щоб змінити частину рядка.

вставити()

Функція insert() додає підрядок у вказану позицію.

стерти()

Використовуйте функцію erase(), щоб видалити частину рядка.

8.

Перетворення

c_str()

Щоб отримати рядок у стилі C із std::string, ви можете скористатися функцією c_str().

Примітка: Наведені вище функції працюють лише для рядків стилю C++ (об’єкти std::string), а не для рядків стилю C (масив символів).

1. Довжина рядка – length() або size()

Ми можемо знайти довжину рядка (кількість символів) за допомогою будь-якого length() або size() функція класу std::string.

Синтаксис

string_object. size() or string_object. length()>

Параметри

  • Ця функція не приймає жодних параметрів.

Повернене значення

  • Ця функція повертає кількість символів у рядковому об’єкті.

приклад

std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>

Він поверне довжину рядка текст що становить 13.

2. Доступ до символів – at()

Як правило, ми можемо отримати доступ до символу рядка за допомогою [] індексовий оператор масиву та індексація. Але std::string також має функцію під назвою в() який можна використовувати для доступу до символів рядка.

Синтаксис

string_object. at( index );>

Параметри

    індекс: представляє позицію символу в рядку.

Повернене значення

  • Ця функція повертає символ, присутній у індекс.

приклад

std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>

std::cout виведе K на консолі, оскільки це символ, присутній під індексом 3.

3. Конкатенація рядків – оператор append() або +

Ми можемо конкатенувати рядок у C++ двома методами:

1. + Оператор

Оператор + перевантажено в класі std::string для виконання конкатенації рядків.

Синтаксис

string_object1 + string_object2>

приклад

std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>

Оператор + використовується для об’єднання двох рядків. Рядок fullName буде techcodeview.com.

2. append()

Функція append() є ще однією функцією-членом для об’єднання двох рядків.

Синтаксис

string_object1. append ( string2 )>

Параметри

    string2: ця функція приймає рядок, який потрібно додати, як параметр. Це може бути рядок стилю C або C++.

Повернене значення

  • Посилання на кінцевий рядок.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string>

Функція append() додає один рядок у кінець іншого.

4. Порівняння рядків – оператор compare() або ==

Подібно до конкатенації, порівняння рядків можна виконати двома методами:

1. == Оператор

Оператор рівності можна використовувати для порівняння двох рядків, оскільки він перевантажений для цієї операції в класі std::string.

Синтаксис

string_object1 == string_object2>

Це повернеться правда якщо обидва рядки рівні, інакше повертає помилковий.

приклад

std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }>

Тут буде надруковано рядки нерівні, оскільки оператор == повернеться помилковий.

2. порівняти()

Функція compare() є функцією-членом класу std::string, яку можна використовувати для порівняння двох рядків.

Синтаксис

str1. compare( str2 );>

Параметри

    str2: це рядок для порівняння. Це може бути рядок у стилі C або C++.

Повернене значення

  • Якщо рядки рівні, поверніться нуль.
  • Якщо str1 більше ніж str2, повертає значення >0
  • Якщо str2 більше за str1, повертає значення <0

приклад

string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>

Результат міститиме значення менше нуля, оскільки str2 більше ніж str1.

Ми також можемо порівняти підрядок str2 за допомогою функції порівняння():

str1.compare(position, length, str2);>

де,

    position : позиція першого символьного підрядка. length: довжина підрядка. str2: рядковий об’єкт для порівняння.

5. Пошук – find()

Ми можемо використовувати знайти() функція класу std::string, щоб перевірити, чи присутній даний символ або підрядок у рядку або його частині.

Синтаксис find()

str1.find(var);>

Параметри

    var: це може бути рядок у стилі C, рядок у стилі C++ або символ, який потрібно шукати в рядку.

Повернене значення

  • Він повертає вказівник на перше входження символу або підрядка в рядку.

приклад

std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring>

Змінна position міститиме 4, що є початком першого входження рядка Програмування в тексті рядка.

6. Генерувати підрядок – substr()

Ми можемо використовувати функція substr(). щоб створити частину рядка як новий об’єкт рядка. Це функція-член класу std::string.

Синтаксис substr() у C

str1. substr ( start, end );>

Параметри

    початок: Початкова позиція підрядка, який буде згенерований. end: Кінець підрядка, який буде згенерований.

Тип повернення

  • Він повертає щойно створений рядковий об’єкт.

приклад

std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>

У наведеному вище прикладі. в суб рядок міститиме світ.

Зміна рядків

Наступна функція дозволяє нам змінювати поточний рядок.

1. вставити()

Функція insert() не тільки дозволяє нам додавати рядок, але також дозволяє нам додавати його у вказану позицію. Це також функція-член класу std::string.

Синтаксис

str1. insert (index, str2);>

Параметри

    str2: рядок для вставки. індекс: позиція, куди потрібно вставити новий рядок

Тип повернення

  • Посилання на str1.

приклад

std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>

2. замінити()

Функція replace() замінює частину рядка заданим іншим рядком. На відміну від вставки, символи в частині, куди потрібно вставити новий рядок, видаляються.

Синтаксис

str1. replace ( index, size, str2 );>

Параметри

    index: Індекс того, з чого почати заміну нового рядка. розмір: довжина частини рядка, яку потрібно замінити. str2: новий рядок, який потрібно вставити.

Тип повернення

  • Посилання на str1.

приклад

альтернатива xampp
std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>

3. стерти()

Функція erase() є функцією-членом класу std::string, яка використовується для видалення символу або частини рядка.

Синтаксис

str1 .erase( start, end);>

Параметри

    початок: вихідне положення. end: Кінцева позиція.

Тип повернення

  • Посилання на str1.

приклад

std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>

Перетворення std::string на C String – c_str)_

Функція c_str() є функцією-членом, яка використовується для перетворення рядка стилю C++, тобто об’єктів std::string, у рядок стилю C, тобто масив символів.

Синтаксис

str1.c_str()>

Параметри

  • Ця функція не приймає жодних параметрів.

Повернене значення

  • Покажчик на еквівалентний масив символів.

приклад

std::string str = 'C++'; const char* cstr = str.c_str()>

Приклад рядкових функцій у C++

Наведений нижче код демонструє використання вказаних вище рядкових функцій:

C++




// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> ім'я;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }>

>

>

Вихід

Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>