class DarkRaha extends com { // разработка приложений
            String a="Главная" b="Контакты" c="О сайте"
};

STL

основы

введение
Инструментарий
Проекты в C++
Комментарий
Утверждения
Идентификаторы
Область видимости
Литералы
Типы данных, переменные
Константы, перечисления
Выражения и операции
Агрегатные типы
Указатели
Ссылки
Массивы
Строки
Управляющие операторы
Функции
Аргументы функции

ООП

Терминология
Определение классов
Константные методы
Статические члены
Наследование
Инкапсуляция
Полиморфизм
Инициализация и уничтожение объектов
this

прочее

шаблоны
макросы
динамическая память
исключения
rtti

Справочник по C++

Строки

Существуют два варианта работы с текстовой информацией. Первый это воспользоваться С строками - массивами символов, завершаемых нулевым символом. Для работы с ними в стандартную библиотеку входят следующие оптимизированные функции:

Для их использования необходимо включить файл string.h или string. Для функций с префиксом str есть аналогичные функции с префиксом wcs для строк с символами типа wchar_t.

Функции поиска возвращают указатель на позицию найденного элемента или 0, если ничего не найдено. Для аргументов верны следующие правила: копирование, добавление (куда, откуда), поиск (где, что). Функции не обрабатывают корректно нулевые аргументы.

динамические строки, класс string

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

Помимо STL свои классы имеют такие библиотеки как wxWidjets, VCL, MFC.

#include <boost/algorithm/string.hpp>
#include <iostream>
#include <string>
using namespace std;
using namespace boost;

int main() {
string str,str2;
str="   He#l$$lo";

// добавление строки
str.append(" Wor#ld !! ");
cout<<"str after append: "<<str<<endl;
// заменить участок строки
str.replace(str.begin()+7,str.begin()+9,"@@");	
cout<<"str after replace: "<<str<<endl;
// удалить участок строки (2 символа начиная с 7)
str.erase(7,2);
cout<<"str after erase: "<<str<<endl;
// выделить подстроку из 3 символов, начиная с 5 символа
cout<<"substr demo: "<<str.substr(5,3)<<endl<<endl<<endl;

// ---примеры некоторых алгоритмов из Boost---//
erase_all(str, "#"); // удаляем все #
cout<<"after erase_all: |"<<str<<"|"<<endl;

// удаление пустых символов слева и справа
// сама строка не меняется
cout<<"left trim: |"<<trim_left_copy(str)<<"|"<<endl;
cout<<"right trim: |"<<trim_right_copy(str)<<"|"<<endl;

// удаление пустых символов слева и справа
// в самой строке
trim(str);
cout<<"after trim: |"<<str<<"|"<<endl;

// перевести символы строки в верхний регистр
to_upper(str);
cout<<"after to_upper: |"<<str<<"|"<<endl;

// перевести символы строки в нижний регистр
to_lower(str);
cout<<"after to_lower: |"<<str<<"|"<<endl;

// равен ли префикс и суффикс строки указанной строке
cout<<"is start of str=HEllo : "<<starts_with(str,"HEllo")<<endl;
cout<<"is start of str=HEllo : "<<istarts_with(str,"HEllo")<<endl;
cout<<"is end of str=\"!!\" : "<<ends_with(str,"!!")<<endl;

// найти второе вхождение (от 0) подстроки
str=" abLO ffffab abLO abLO";
cout<<"now str : "<<str<<endl;
cout<<"find 2 entry of ab in str: "<<find_nth(str,"ab",2)<<endl;
cout<<"find 2 entry of ab3 in str: "<<find_nth(str,"ab3",2)<<endl;

// удаление второго вхождения подстроки
erase_nth(str,"ab",2);
cout<<"after erase_nth: "<<str<<endl; 
}

Рейтинг@Mail.ru