Период, термин означает упорядоченную последовательность символов. Последовательность символов может быть представлена с помощью объекта класса в C ++. Класс, который обеспечивает это определение, называется классом String. Класс String хранит символы в виде последовательности байтов с возможностью доступа к однобайтовому символу. В C ++ заключающие разделители заключаются в двойные кавычки. В этой статье «Строки в C ++» я буду обсуждать следующие темы:
- Строковый класс и разница в массиве символов
- Объявление и инициализация строк в C ++
- Операции со строками в C ++
- Размер строки
- Конкатенация строк
- Добавление строк
- Поиск строк
Строковый класс и разница в массиве символов
Класс String | Массив символов |
Класс String - это класс, который определяет объекты, которые могут быть представлены как поток символов. | Массив символов - это просто массив символов. |
В случае строк память распределяется динамически, поэтому больше памяти может быть выделено во время выполнения по запросу. | Размер символьного массива должен выделяться статически, поэтому во время выполнения нельзя выделить больше памяти, если это необходимо. |
Класс String определяет ряд функций, которые позволяют выполнять разнообразные операции со строками. | Массив символов не предлагает множество встроенных функций для управления строками |
Строки медленнее по сравнению с реализацией, чем массив символов. | Реализация символьного массива Быстрее. |
Объявление и инициализация строк в 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) { coutfun_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 с примерамиЕсть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.