Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Работа с несовместимыми конструкциями.

Читайте также:
  1. AKM Работа с цепочками событий
  2. Compound objects: LOFTING. Работа с сечениями.
  3. I. УЧЕБНАЯ РАБОТА (нагрузка в академических часах)
  4. II. Научно-исследовательская работа и практика
  5. IV.Работа по теме
  6. IX. Работа с кадрами
  7. IX. Работа с элементами системы О.О.П.А.С.

Из существующей программы на С можно удалить любую из несовместимых с С++ конструкций так, что код будет компилироваться и иметь такое же смысловое содержание, как и при использовании компилятора С++. Компилятор С++ заметит все перечисленные варианты несовместимости, кроме двух последних, которые (особенно различия в значениях, создаваемых оператором 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 для непустой:
  str.empty();

Как мы можем узнать, совпадают ли строки? Воспользуемся оператором сравнения ==:

  if (str == str2)

А как же можно скопировать одну строку в другую? Это можно реализовать с помощью обычной

операции присваивания =:

  std::string str2; // Создание объекта строки str2 = str; // при помощи оператора присваивания, копируем str в str2
   

Для конкатенации строк используется операция сложения + или операция сложения с присваиванием +=. Рассмотрим следующий код:

  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 | Нарушение авторских прав


Читайте в этой же книге: Перезагрузка конструкторов | Перегрузка операций (операторов). Понятие перегрузки операторов. Синтаксис перегрузки операции. Перегрузка бинарных операторов. | Перегрузка операций (операторов). Перегрузка операторов отношения и логических операторов. Перегрузка оператора присваивания. Перегрузка унарных операторов. | Перегрузка операций (операторов). Перегрузка операторов инкремента и декремента. Перегрузка оператора индексирования. Перегрузка оператора вызова функции. | Перегрузка операций (операторов). Перегрузка операторов доступа к членам класса. Перегрузка операторов new и delete. Функции преобразования типа. | Полиморфизм и виртуальные функции. Раннее и позднее связывание. Динамический полиморфизм. Виртуальные функции. Виртуальные и невиртуальные функции. | Полиморфизм и виртуальные функции. Применение динамического полиморфизма. Виртуальные деструкторы. Абстрактные классы и чисто виртуальные функции. | Длина самого длинного слова 10 | Самое длинное слово beautiful | Строковые потоки |
<== предыдущая страница | следующая страница ==>
Состояние формата (ОТНОСИТСЯ К ПОСЛЕДНЕМУ ВОПРОСУ, КОТОРЫЙ 24)| Стандартный класс string. Зарезервированные слова и опции меню.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)