![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Класс 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: CString str=" Число"; str.Format(" %s %d", str, 123); В переменную str записывается слово. Функция Format имеет три параметра: первый представляет собой строку формата, остальные – список помещаемых в строку значений. Спецификаторы преобразования строки формата должны соответствовать типу соответствующих им аргументов. Так, первый спецификатор %s соответствует строковой, второй %d – целочисленной переменным. В результате преобразования в переменной str будет находиться строка: " Число 123". При применении других методов класса CString следует обратиться к контекстной подсказке VC++ или к справочной системе MSDN.
|