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

Строки на основе массива типа char и класса string

Синтаксис определения структуры, структурной переменной. Доступ к полям структуры, присвоение структурных переменных. | Синтаксис определения, инициализация указателя на структуру. Работа с полями структуры через указатели. | Определение функции. Передача аргументов и возврат значения по значению, ссылке и указателю. Аргументы по умолчанию. Константы аргументов функции. | Перегруженные функции. Встроенные функции. Рекурсивные функции. | Область видимости и класс памяти. | Объявление и инициализация одномерного и двумерного массивов. Работа с элементами массива через указатель. | Принципы ООП. Инкапсуляция. Наследование. Полиморфизм. | Конструкторы и деструкторы. Конструкторы копирования по умолчанию. | Объекты как аргументы методов и доступ к их числам. | Размещение в памяти членов объектов одного класса и способ создания общих полей (св-в). |


Читайте также:
  1. A.1.2. Технология командной строки.
  2. Gt; FROM string_tbl
  3. II. Обеспечение безопасности СОК «Триумф», личной безопасности и неприкосновенности граждан. Запрет на антиобщественные действия
  4. Printing values and working with string interpolation
  5. Printing values and working with string interpolation
  6. PWM Strings
  7. V. МЕЖДУНАРОДНОЕ РЕВОЛЮЦИОННОЕ ДВИЖЕНИЕ РАБОЧЕГО КЛАССА

Два различных подхода к определению строк, которые используются для хранения текста и выполнения действий с ним. Первым видом строк является массив элементов типа char.

char str [ 20 ];

char str [ ] = "Я памятник себе воздвиг нерукотворный."; // определение с инициализацией

Каждый символ занимает 1 байт памяти. Важная деталь, касающаяся строк, состоит в том, что они должны завершаться байтом, содержащим \0.

Второй тип представляет собой объекты стандартного класса string в C++. Строки, созданные с помощью класса string, во многих ситуациях вытеснили строковый тип. Этот класс во многом улучшает традиционный строковый тип. Например, вам не нужно заботиться о создании массива нужного размера для содержания строковых переменных. Класс string берет на себя всю ответственность за управление памятью. Кроме того, этот класс позволяет использовать перегруженные операции, поэтому вы можете объединять строковые объекты, используя операцию +: S3 = S1 + S2;

Вот ещё два способа определения объекта класса string:

string s1 ("Рыба");

string s2 = "Мясо";

Класс string включает в себя различные методы для поиска строк и фрагментов строк в объектах класса string. Можно, например, выполнять поиск любого символа из группы, можно искать первый/последний символ в строке, который не входит в определенную группу символов, есть так же метод, переворачивающий строку. Кроме того, есть методы стирания, замены, вставки, сравнения строк и т.д. Всегда можно привести строку на основе класса string к строке на основе массива.

#include <iostream>

#include <string>

using namespace std;

int main ()

{

char charray [ 80 ];

string word;

cout << "Введите слово: ";

cin >> word;

int wlen = word.length(); // длина строки

cout << "По одному символу: ";

for (int j = 0; j < wlen; j++)

cout << word.at (j);// проверка на выход за пределы строки

// cout << word [ j ]; // а тут проверки не будет

word.copy (charray, wlen, 0); // копируем строку в массив

charray [ wlen ] = 0;

cout << "\nМассив содержит: " << charray << endl;

return 0;

}

Вы должны знать, что объекты класса string не заканчиваются нулевым символом, как это происходит в строковом типе. Вместо этого у нас есть переменная класса, хранящая длину строки.

Обычно такое использование строкового типа в современных программах не рекомендуется. Предпочтительнее использовать для работы со строками объекты класса string. Эти объекты могут работать с перегруженными операциями и методами класса.


Дата добавления: 2015-08-17; просмотров: 141 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Константные методы, их аргументы и константные объекты.| Перегрузка бинарных операций

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