Программирование >>  Инициализация объектов класса, структура 

1 ... 91 92 93 [ 94 ] 95 96 97 ... 395


string new string ( AnnaBelle Lee ); string object += ; добавим пробел

ем начальна и конечна позицию в new string ew string.find( B );

найдем pos = new string string::size type posEnd = new string.find( );

string object.insert(

string object.size(), позиция вставки

new string, pos, начало подстроки в new string

posEnd конец подстроки new string

Можно выделить для вставки подстроку из new string:

string object получает значение lississippi Belle . Если мы хотим вставить все символы new string, начиная с pos, последний параметр нужно опустить.

string sl( ssissippi );

Пусть есть две строки:

string s2( Annabelle );

Как получить третью строку со значением liss Anna ?

string s3;

скопируем первые 4 символа s1

Можно использовать функции-члены assign() и append() :

s3.assign ( s1, 4 );

добавим пробел

s3 теперь содержит значение liss .

добавим 4 перв символа s2

Теперь s3 содержит Miss .

s3.append(s2,4); s3 получила значение Miss Anna . То же самое можно сделать короче:

s3.assign(s1,4).append( ).append(s2,4);



присвоим beauty значение belle Вместо этих параметров мы можем использовать пару итераторов:

beauty.assign( s2, s2.begin()+4, s2.end() );

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

string current project( C++ Primer, 3rd Edition );

значениями, поскольку работа идет то над одним, то над другим. Например:

string pending project( Fantasia 2000, Firebird segment );

Функция-член swap() позволяет обменять значения двух строк с помощью вызова

current project.swap( pending project ); Для строки

string first novel( V );

операция взятия индекса

char ch = first novel[ 1 ];

возвратит неопределенное значение: длина строки first novel равна 1, и единственное правильное значение индекса - 0. Такая операция взятия индекса не обеспечивает проверку правильности параметра, но мы всегда можем сделать это сами с помощью функции-члена size() :

Другая форма функции-члена assign() имеет три параметра: второй обозначает позицию начала, а третий - длину. Позиции нумеруются с 0. Вот как, скажем, извлечь

string beauty;

присвоим beauty значение belle

belle из Annabelle :

beauty.assign( s2, 4, 5 );



elem count( const string &word, char elem ) {

int occurs = 0;

не надо больше проверять ix for ( int ix=0; ix < word.size(); ++-ix ) if ( word[ ix ] == elem ) ++occurs; return occurs;

void

mumble( const string &st, int index ) {

возможна ошибка char ch = st[ index ];

...

Там, где это невозможно или нежелательно, например:

следует воспользоваться функцией at() , которая делает то же, что и операция взятия индекса, но с проверкой. Если индекс выходит за границу, возбуждается исключение

void

mumble( const string &st, int index ) {

try {

char ch = st.at( index );

...

catch ( std::out of range ){... }

...

out of range:

string cobol program crash( abend );

Строки можно сравнивать лексикографически. Например:

string cplus program crash( abort );

Строка cobol program crash лексикографически меньше, чем cplus program crash: сопоставление производится по первому отличающемуся символу, а буква e в латинском алфавите идет раньше, чем o. Операция сравнения выполняется функцией-членом comipare(). Вызов

sl.compare( s2 );



1 ... 91 92 93 [ 94 ] 95 96 97 ... 395

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика