Читайте также: |
|
Из существующей программы на С можно удалить любую из несовместимых с С++ конструкций так, что код будет компилироваться и иметь такое же смысловое содержание, как и при использовании компилятора С++. Компилятор С++ заметит все перечисленные варианты несовместимости, кроме двух последних, которые (особенно различия в значениях, создаваемых оператором sizeof) не приводят к сообщению компилятора об ошибке, но изменяют смысловое содержание программы. Такая ситуация - исключение из общего правила: если программа успешно компилируется компиляторами С и С++, то она имеет одинаковое смысловое содержание в обоих языках.
25. Стандартный класс string. Конструкторы строк. Изменение величины строки и ее емкости. Присваивание, добавление и обмен строк. Доступ к символам строки.
string | 12 (размер в байтах) |
string – это STL’евский класс, основанный на шаблонах, который входит в стандартную библиотеку C++. Для использования данного класса в ваших приложениях, нужно подключить директиву<string>.
Простейший пример использования:
#include <iostream>
#include <string>
int main()
{
std::string str;
std::cout << "Enter your name: ";
std::getline(std::cin, str);
std::cout << "Hello, " << str << "!!! \n";
return 0;
}
Минимальный набор операций, которыми должен обладать класс string:
Чтобы узнать длину строки, можно воспользоваться функцией-членом size(), или length(), которые, как и ожидается, возвращают саму длину (длина не включает завершающий нулевой символ).
А как же узнать, пуста ли строка? Вы скажете у нас же есть метод возвращающий длину, следовательно можно применить следующую конструкцию:
if (str.size() == 0) // Если условие истинно, то строка пуста.
Однако и для таких случаев имеется специальный метод empty(), возвращающий true для пустой
строки и false для непустой:
Как мы можем узнать, совпадают ли строки? Воспользуемся оператором сравнения ==:
А как же можно скопировать одну строку в другую? Это можно реализовать с помощью обычной операции присваивания =:
| |||||||
Для конкатенации строк используется операция сложения + или операция сложения с присваиванием +=. Рассмотрим следующий код:
std::string str1 = "Hello"; std::string str2 = "World"; |
Мы можем получить строку "HelloWorld", состоящую из конкатенации str1 и str2, таким образом:
std::string str3 = str1 + str2; |
В результате в строке str3 будет хранится следующее: "HelloWorld".
Так же подобного результата, мы можем добиться и другим способом:
std::string str3 = str1; str3 += str2; |
Здесь мы создаем строку str3 инициализируя её содержимым str1, и далее при помощи оператора += в конец str3добавляем str2. Результат будет таким как и в предыдущем примере.
Операция сложения может конкатенировать (соединять, присоединять) экземпляры (объекты) класса std::string не только между собой, но и со строками встроенного типа. Такой код будет вполне работоспособным:
char* str = "Hello"; std::string str2 = str; str2 += " World"; str2 += '!'; |
в результате в строке str2, будет хранится "HelloWorld!"
Дата добавления: 2015-09-03; просмотров: 110 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Состояние формата (ОТНОСИТСЯ К ПОСЛЕДНЕМУ ВОПРОСУ, КОТОРЫЙ 24) | | | Стандартный класс string. Зарезервированные слова и опции меню. |