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

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


string sentence(

An ADT provides both interface and implementation. );

string::size type position = sentence.find 1ast of( A ); string::size type length = 3;

заменяем ADT на Abstract Data Type

варианта:

sentence.repiace( position, length, AAbstract Data Type );

position представляет собой начальную позицию, а length - длину заменяемой подстроки. Третий аргумент является подставляемой строкой. Его можно задать

string new str( Abstract Data Type );

несколькими способами. Допустим, как объект string:

sentence.replace( position, length, new str );

Следующий пример иллюстрирует выделение подстроки в new str:

возвращает одно из трех значений:

если s1 больше, чем s2, то положительное;

если s1 меньше, чем s2, то отрицательное;

если s1 равно s2, то 0. Например,

cobol program crash.compare( cplus program crash );

вернет отрицательное значение, а

cplus program crash.compare( cobol program crash );

положительное. Перегруженные операции сравнения (<, >, !=, ==, <=, >=) являются более компактной записью функции compare() .

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

Функция-член replace() дает десять способов заменить одну подстроку на другую (их длины не обязаны совпадать). В двух основных формах replace() первые два аргумента задают заменяемую подстроку: в первом варианте в виде начальной позиции и длины, во втором - в виде пары итераторов на ее начало и конец. Вот пример первого



#include <string>

typedef string::size type size type;

найдем позицию трех букв

size type posA = new str.find( A )

size type posD = new str.find( D )

size type posT = new str.find( T )

нашли: заменим T на Type

sentence.replace( position+2, 1, new str, posT, 4 ); нашли: заменим D на Data

sentence.replace( position+1, 1, new str, posD, 5 ); нашли: заменим A на Abstract

sentence.replace( position, 1, new str, posA, 9 );

Еще один вариант позволяет заменить подстроку на один символ, повторенный заданное

string hm( Some celebrate Java as the successor to C++. ); string:: size type position = hm.find( J );

заменим Java на xxxx

количество раз:

hmm.repiace( position, 4, x, 4 );

В данном примере используется указатель на символьный массив и длина вставляемой

const char *lang = Eiffelda95Javaodula3 ;

int index[] = { 0, 6, 11, 15, 22 };

string ahhem(

C++ is the language for todays power programmers. ); подстроки:

ahhem.replace(0, 3, lang+index[1], index[2]-index[1]);

string sentence(

An ADT provides both interface and implementation. );

указывает на A в ADT

string: iterator start = sentence. begin()+3; заменяем ADT на Abstract Data Type

А здесь м1 используем пару итераторов:

sentence.repiace( start, start+3, Abstract Data Type );

Оставшиеся четыре варианта допускают задание заменяющей строки как объекта тина string, символа, повторяющегося N раз, нары итераторов и С-строки.

Вот и все, что мы хотели сказать об операциях со строками. Для более полной информации обращайтесь к определению стандарта С++ [JS.



string generate salutation( string generic1,

string lastname, string generic2, string::size type pos,

Напишите функцию:

int length );

которая в строке

string generic1( Dear Ils Daisy: );

заменяет Daisy и Is (миссис). Вместо Daisy подставляется параметр lastname, а вместо Is подстрока

string generic2( MrsMsssPeople ); длины length, начинающаяся с pos.

string lastName( AnnaP ); string greetings =

Например, вызов

generate salutation( generici, lastName, generic2, 5, 4 );

вернет строку:

Dear Miss AnnaP:

Упражнение 6.18

Напишите программу, которая с помощью функций-членов assign() и append() из

string ote1( When lilacs last in the dooryard bloomd ); строк

string ote2( The child is father of the man );

составит предложение

The child is in the dooryard

Упражнение 6.19



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

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