Читайте также:
|
|
Два различных подхода к определению строк, которые используются для хранения текста и выполнения действий с ним. Первым видом строк является массив элементов типа 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 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Константные методы, их аргументы и константные объекты. | | | Перегрузка бинарных операций |