Студопедия

Главная страница Случайная страница

Разделы сайта

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






Класс CString






Класс CString – удобное средство для работы со строками. В отличие от языка C, где работа со строковыми данными сводится к использованию массивов символов, ограниченных конечным нулем, а действия над строками осуществляются через указатели на строки, класс CString позволяет создать строковую переменную, аналогичную переменной типа string в языке Pascal. CString не имеет базового класса.

Класс CString содержит последовательность символов переменной длины и набор функций и операций над ней. Тип символа – TCHAR, т. е. если в программе используется двухбайтный символ (определен макрос _UNICODE), то тип символа устанавливается как WCHAR, в противном случае тип символа определяется как char.

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

Примеры конструирования строковых объектов:

Cstring str; //Конструктор по умолчанию создает

//пустую строку

CString str1, str2;

CString str3(" Строка символов"); //Конструктор с

//параметрами помещает в строку str3 значение

//своего аргумента

CString str4=str3; //Создание строки и ее

//инициализация

CString str5 = " 123456"; //заданным значением

CString str6(str5); //Копирующий конструктор

//создает копию переменной типа CString

В класс CString включены операции над строками.

Присваивание:

str=" Строка";

str1=str;

Конкатенация строк (сложение):

str1=" Библиотека";

str2=" MFC";

str=str1 + " " + str2;

Доступ к отдельному символу строки через его порядковый номер:

char ch=str[1]; //начало отсчета – индекс 0

str[2]='4';

Следует заметить, что для выполнения действий над отдельными символами лучше применять специальные функции класса GetAt() и SetAt():

str.GetAt(1); //Чтение символа с индексом 1,

str.SetAt(2, '7'); //Запись символа '7' вместо

//символа с индексом 2.

Сравнение строк (используются перегруженные операторы отношения <, >, < =, > =, ==,! =):

if (str1> str2)

str=str1;

else

str=str2;

Вставка объекта в поток (оператор < <):

cout < < str1;

Извлечение объекта из потока (оператор > >):

cin > > str1;

В класс CString включены разнообразные функции для обработки строковых данных (табл. 21.1).

Таблица 21.1

Методы класса CString Выполняемые действия
GetLength() Возвращает число символов, хранимых в объекте
GetBuffer() Возвращает указатель на буфер объекта, что позволяет использовать его в обычных функциях языка C, имеющих в качестве параметра указатель на строку
ReleaseBuffer() Освобождает буфер, распределенный Выполняемые действияметодом GetBuffer()
Compare() Сравнивает две строки с учетом регистра букв
CompareNoCase() Сравнивает две строки без учета регистра букв
GetAt() Возвращает символ в заданной позиции
SetAt() Устанавливает символ в заданную позицию
Find() Находит подстроку и возвращает индекс ее первого символа
Format() Преобразует данные других типов в текст, подобно функции sprintf()
MakeLower() Преобразует все символы в строчные
MakeUpper() Преобразует все символы в прописные
MakeReverse() Обращает порядок символов в строке
Left() Выделяет заданное количество самых левых символов в строке
Right() Выделяет заданное количество самых правых символов в строке
Insert() Вставляет подстроку в строку
Delete() Удаляет указанные символы из строки

 

Преобразование данных в переменную типа CString:

CString str=" Число";

str.Format(" %s %d", str, 123);

В переменную str записывается слово. Функция Format имеет три параметра: первый представляет собой строку формата, остальные – список помещаемых в строку значений. Спецификаторы преобразования строки формата должны соответствовать типу соответствующих им аргументов. Так, первый спецификатор %s соответствует строковой, второй %d – целочисленной переменным. В результате преобразования в переменной str будет находиться строка: " Число 123". При применении других методов класса CString следует обратиться к контекстной подсказке VC++ или к справочной системе MSDN.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.