Читать «C++: базовый курс» онлайн - страница 324

Herbert Schildt

С помощью функции-члена append() можно часть одной строки присоединить в конец другой. Два возможных формата ее реализации имеют следующий вид.

string &append(const string &strob, size_type start, size_type num);

string &append(const char *str, size_type num);

Здесь при использовании первого формата num символов из строки, заданной параметром strob, начиная с индекса start, будет присоединено в конец вызывающего объекта. Второй формат позволяет присоединить в конец вызывающего объекта первые num символов строки с завершающим нулем, заданной параметром str. В каждом случае возвращается ссылка на вызывающий объект. Конечно, гораздо проще для присоединения одной полной строки в конец другой использовать оператор Функция же append() применяется тогда, когда необходимо присоединить в конец вызывающего объекта только часть строки.

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

string &insert(size_type start, const string &strob);

string &insert(size_type start, const string &strob, size_type insStart, size_type num);

string &replace(size_type start, size_type num, const string &strob);

string &replace(size_type start, size_type orgNum, const string &strob, size_type replaceStart, size_type replaceNum);

Первый формат функции insert() позволяет вставить строку, заданную параметром strob, в позицию вызывающей строки, заданную параметром start. Второй формат функции insert() предназначен для вставки num символов из строки, заданной параметром strob, начиная с индекса insStart, в позицию вызывающей строки, заданную параметром start.

Первый формат функции replace() служит для замены num символов в вызывающей строке, начиная с индекса start, строкой, заданной параметром strob. Второй формат позволяет заменить orgNum символов в вызывающей строке, начиная с индекса start, replaceNum символами строки, заданной параметром strob, начиная с индекса replaceStart. В каждом случае возвращается ссылка на вызывающий объект.

Удалить символы из строки можно с помощью функции erase(). Один из ее форматов выглядит так:

string &erase(size_type start = 0, size_type num = npos);

Эта функция удаляет num символов из вызывающей строки, начиная с индекса start. Функция возвращает ссылку на вызывающий объект.

Использование функций insert(), erase() и replace() демонстрируется в следующей программе.

// Демонстрация использования функций insert(), erase() и replace().

#include <iostream>

#include <string>

using namespace std;

int main()

{

 string str1("Это простой тест.");

 string str2("ABCDEFG");

 cout << "Исходные строки:\n";

 cout << "str1: " << str1 << endl;

 cout << "str2: " << str2 << "\n\n";