Описание строковых классов. Аргументы операций со строками

   
На этом шаге мы рассмотрим особенности использования аргументов в строковых операциях.

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

Таблица 1. Схема передачи аргументов строковых операций

ОперацияОписание
const string& strВся строка str
const string& str, size_type idx, size_type numHe более первых num символов str, начиная с индекса idx
const char* strВся С-строка
const char* chars, size_type lenПервые len символов символьного массива chars
char cСимвол c
size_type num, char сNum экземпляров символа c
iterator beg, iterator endВсе символы в интервале [beg,end)

   
Обратите внимание: только в одноаргументной версии с передачей char* символ \0 интерпретируется как специальный символ,
завершающий строку. В остальных случаях \0 не считается специальным символом.

std::string s1("nico");    // s1 инициализируется символами n, i, c, о 
std::string s2("nico",5);  // s2 инициализируется символами n, i, c, о, \0 
std::string s3(5,'\0');    // s3 инициализируется символами \0, \0, \0, \0, \0
s1.length()	// Результат равен 4
s2.length()	// Результат равен 5
s3.length()	// Результат равен 5

   
Таким образом, в общем случае строка состоит из произвольных символов. Например, в нее можно загрузить содержимое двоичного файла.

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

Таблица 2. Операции со строковыми параметрами

 Полная строкаЧасть строкиС-строка (char*)Массив charОтдельный символnum символовИнтервал итераторов
КонструкторыДаДаДаДа-ДаДа
=Да-Да-Да--
assign()ДаДаДаДа-ДаДа
+=Да-Да-Да--
append()ДаДаДаДа-ДаДа
push_back()----Да--
insert(), индексная версияДаДаДаДа-Да-
insert(), итераторная версия----ДаДаДа
replace (), индексная версияДаДаДаДаДаДа-
replace (), итераторная версияДа-ДаДа-ДаДа
Поисковые функцииДа-ДаДаДа--
+Да-Да-Да--
==, !=, <, <=, >, >=Да-Да----
compare()ДаДаДаДа---

   
На следующем шаге мы рассмотрим отсутствующие операции.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий