Все, что вам нужно знать о строках в C ++



Эта статья предоставит вам подробные и всесторонние знания о строках в C ++, а также предоставит примеры различных операций.

Период, термин означает упорядоченную последовательность символов. Последовательность символов может быть представлена ​​с помощью объекта класса в C ++. Класс, который обеспечивает это определение, называется классом String. Класс String хранит символы в виде последовательности байтов с возможностью доступа к однобайтовому символу. В C ++ заключающие разделители заключаются в двойные кавычки. В этой статье «Строки в C ++» я буду обсуждать следующие темы:

Строковый класс и разница в массиве символов

Класс String Массив символов
Класс String - это класс, который определяет объекты, которые могут быть представлены как поток символов.Массив символов - это просто массив символов.
В случае строк память распределяется динамически, поэтому больше памяти может быть выделено во время выполнения по запросу.Размер символьного массива должен выделяться статически, поэтому во время выполнения нельзя выделить больше памяти, если это необходимо.
Класс String определяет ряд функций, которые позволяют выполнять разнообразные операции со строками.Массив символов не предлагает множество встроенных функций для управления строками
Строки медленнее по сравнению с реализацией, чем массив символов.Реализация символьного массива Быстрее.

Объявление и инициализация строк в C ++

strings-in-c++Инициализация строки в C ++ очень проста !. Мы можем использовать любой из следующих методов.





используя пространство имен std string std_string

или

std :: string std_string
#include с использованием пространства имен std int main () {char ch [12] = {'H', 'e', ​​'l', 'l', 'o', '', 'b', 'y', '' , 'c', 'h', ''} string st = 'Hello by st' std :: string std_st = 'Hello by std_st' cout<< ch << endl cout << st << endl cout << std_st << endl return 0 }

Вывод:



как перевернуть число в Python
Привет от ch Привет от st Привет от std_st

В этом примере мы показали как массив символов (ch), так и строку clметоды инициализации ass (st и std_st). Во-первых, мы использовали метод массива символов, определив массив символов ch [12], который содержит 12 элементов и заканчивается нулевым символом. Во второй части мы использовали метод строкового класса.

Операции со строками в C ++

Преимущество использования строкового класса состоит в том, что в C ++ есть несколько встроенных функций для управления ими. Это делает программирование простым и эффективным. Давайте рассмотрим некоторые важные функции манипуляции строками и разберемся с ними, посмотрев на некоторые примеры.

Размер строки: Оба метода size () и length () могут использоваться для возврата размера объекта.



Стоимость<< st.length() <

Вывод:

С ++ stl сортировка
11 11

Конкатенация строк: Мы можем объединить две или более строк, просто используя оператор + между ними

строка new_string = st + 'и' + std_st cout<< new_string <

Вывод:

Привет от st и привет от std_st

Добавление строк: Функция-член класса .append (строка) может использоваться для объединения и добавления строки в определенном месте символа в строке. Если программист помещает str.append (str1, p, n), это означает, что n символов из позиции p в строке str1 будет добавлено в конец str.

string str = 'Мне нравится учиться' string str1 = 'Python, C ++ или C' str.append (str1, 8, 3) cout<< str << endl

Вывод:

Мне нравится изучать C ++

Поиск по строкам: Мы можем использовать функцию-член find (), чтобы найти первое вхождение строки внутри другой. find () будет искать иголку внутри строки стога сена, начиная с позиции pos, и вернет позицию первого появления иглы. Функция rfind () работает аналогично, за исключением того, что она возвращает последнее вхождение переданной строки.

string haystack = 'Hello World!' струнная игла = 'o' cout<< haystack.find(needle)<

Вывод:

4 4 7 4294967295

Первая команда cout просто напечатает «4», что является индексом первого появления «o» в строке стога сена. Если мы хотим, чтобы «o» в «World», нам нужно изменить «pos», чтобы он указывал за первым вхождением. haystack.find (Needle, 4) снова вернет 4, а haystack.find (Need, 5) вернет 7. Если подстрока не найдена, find () вернет std :: string :: npos.

Npos - это специальное значение, равное максимальному значению, представляемому типом size_type. Здесь это 4294967295. Как правило, он используется либо как индикатор конца строки функциями, ожидающими строковый индекс, либо как индикатор ошибки функциями, возвращающими строковый индекс.

Этот простой код ищет в строке все вхождения «C ++» в str2 и выводит их позиции:

string str2 = 'C ++ - это объектно-ориентированный язык программирования, включающий классы, наследование, полиморфизм, абстракцию и инкапсуляцию данных. C ++ допускает обработку исключений и перегрузку функций, которые невозможны в C. C ++ - мощный, эффективный и быстрый язык. ' for (string :: size_type i = 0, tfind (tfind = wikistr.find ('C ++', i))! = string :: npos i = tfind + 1) {std :: cout<< 'Found occurrence of 'C++' at position ' << tfind << std::endl }

Вывод:

Обнаружено вхождение C ++ в позиции 0 Найдено вхождение C ++ в позиции 132 Найдено вхождение C ++ в позиции 217
#include с использованием пространства имен std class base {public: void fun_1 () {cout<< 'base class function 1n' } virtual void fun_2() { cout << 'base class function 2n' } virtual void fun_3() { cout << 'base class function 3n' } virtual void fun_4() { cout << 'base class function 4n' } } class derived : public base { public: void fun_1() { cout << 'derived class function 1n' } void fun_2() { cout << 'derived class function 2n' } void fun_4(int x) { cout fun_2 () // Позднее связывание (RTP) ptr-> fun_3 () // Позднее связывание (RTP) ptr-> fun_4 () // Раннее связывание, но этот вызов функции // недопустим (вызывает ошибку), потому что указатель // базового типа и функции // производного класса // p-> fun_4 (5)}

Вывод:

функция базового класса 1 функция производного класса 2 функция базового класса 3 функция базового класса 4

На этом мы подошли к концу статьи о строках в C ++. Надеюсь, вы получили представление о различных Операциях, которые можно выполнять с ним. Если вы хотите узнать больше, посетите обучение Java от Edureka, надежной компании, занимающейся онлайн-обучением. Эдурека Курсы обучения и сертификации предназначены для обучения как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

список событий javascript с примерами

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.