Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Для объектов класса string допустимы операции

Поиск
операция действие операция действие
= присваивание > лексикографическое сравнение на больше
+ конкатенация (сцепление) >= лексикографическое сравнение на больше или равно
== лексикографическое сравнение на равенство [ ] индексация (обращение к элементу)
!= лексикографическое сравнение на неравенство << вывод
< лексикографическое сравнение на меньше >> ввод
<= лексикографическое сравнение на меньше или равно += добавление, конкатенация с присвоением результата

 

Для строк класса string (в отличие от строк старого стиля) &s[0] не равно s.

Методы класса string

 

метод назначение
 
  получение характеристик строк
at (size_type n) доступ к n-му элементу строки
size_type size() const; возвращает размер строки
size_type length() const; возвращает размер строки,то же самое, что и size()
size_type max_size() const; возвращает максимальную длину строки
size_type capacity() const; возвращает объем памяти, занимаемый строкой (емкость)
bool empty() const; возвращает истину, если строка пустая
 
  присваивание частей строк
assign (const string& str) присваивает строку str вызывающей строке: s2.assign(s1); //равносильно s2=s1;
assign (const string& str, size_type pos, size_type n); присваивает вызывающей строке n символов строки str, начиная с позиции pos;
assign (const char*s, size_type n); присваивает вызывающей строке n символов строки s старого стиля;
 
  добавление части одной строки к другой
append (const string& str) добавляет строку str к концу вызывающей строки, действие эквивалентно операции конкатенации +: s2. append (s1); //равносильно s2+s1;
append (const string& str, size_type pos, size_type n); добавляет к вызывающей строке n символов строки str, начиная с позиции pos;
append (const char*s, size_type n); добавляет к вызывающей строке n символов строки s старого стиля;
 
  вставка в одну строку части другой строки
insert (size_type pos1, const string& str); вставляет строку str в вызывающую строку, начиная с позиции pos1
insert (size_type pos1, const string& str, size_type pos2, size_type n); вставляет в вызывающую строку, начиная с позиции pos1 n символов строки str, начиная с позиции pos2
insert (size_type pos, const char*s, size_type n); вставляет в вызывающую строку n символов строки s старого стиля;
 
  замена части строки
replace (size_type pos1, size_type n1, const string& str); заменяет n1 элементов, начиная с позиции pos1 вызывающей строки, элементами строки str
replace (size_type pos1, size_type n1, const string& str, size_type pos2, size_type n2); заменяет n1 элементов, начиная с позиции pos1 вызывающей строки, n2 элементами строки str, начиная с позиции pos2
replace (size_type pos1, size_type n1, const char*s, size_type n2); заменяет n1 элементов, начиная с позиции pos1 вызывающей строки, n2 элементами строки s старого стиля
 
  удаление части строки
erase (size_type pos=0, size_type n= npos); npos-самое большое число >0 типа size_type, статический член класса string удаляет n элементов, начиная с позиции pos (если n не задано, то удаляется весь остаток строки)
 
  выделение части строки
string substr (size_type pos=0, size_type n = npos) const; возвращает подстроку длиной n, начиная с позиции pos
 
  обмен содержимого двух строк
swap(string& str); обменивает содержимое вызывающей строки и строки str
 
  поиск подстрок
size_type find (const string& str, size_type pos=0) const; ищет самое левое вхождение строки str в вызывающую строку, начиная с позиции pos; возвращает позицию вхождения, или npos, если вхождение не найдено
size_type find (char c, size_type pos=0) const; ищет самое левое вхождение символа c, начиная с позиции pos; возвращает позицию вхождения или npos, если вхождение не найдено
size_type find_first_not_of (const string& str, size_type pos=0) const; ищет самое левое вхождение в вызывающую строку, начиная с позиции pos, символа, отличного от указанных в строке str; возвращает позицию вхождения, или npos, если вхождение не найдено
size_type rfind (char c, size_type pos=0) const; ищет самое правое вхождение символа c, начиная с позиции pos
size_type find_first_of (const string& str, size_type pos=0) const; ищет самое левое вхождение любого символа cтроки str, начиная с позиции pos
size_type find_first_of (char c, size_type pos=0) const; ищет самое левое вхождение символа c в вызывающую cтрокуr, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено
size_type find_last_of (const string& str, size_type pos=0) const; ищет самое правое вхождение любого символа cтроки str, начиная с позиции pos
size_type find_last_of (char c, size_type pos=npos) const; ищет самое правое вхождение любого символа cтроки str, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено
 
  сравнение частей строк
int compare (const string& str)const сравнение двух строк целиком, возвращает значение <0, если вызывающая строка лексикографически меньше str, =0, если строки равны и >0, если вызывающая строка больше
int compare (size_type pos1, size_type n1, const string& str) const сравнение со строкой str n1 символов вызывающей строки, начиная с позиции pos
int compare (size_type pos1, size_type n1, const string& str, size_type pos2, size_type n2) const n1 символов вызывающей строки, начиная с позиции pos1, сравниваются с подстрокой строки str длиной n2 символов, начиная с позиции pos2
 
  преобразование объектов типа string в строки старого стиля
const char* c_str() const; возвращает указатель на С-строку, содержащую копию вызываемой строки; полученную С-строку нельзя пытаться изменить
 
  копирование в массив части вызывающей строки
size_type copy (char* s, size_type n, size_type pos=0) const; копирует в символьный массив s n элементов вызывающей строки, начиная с позиции pos; нуль-символ в результирующий массив не заносится; метод возвращает количество скопированных элементов;

 

size_type – синоним типа unsigned int, определенного в пространстве имен std;

npos – константа, определенная в string, задающая максимально возможное число
(-1), которое в зависимости от контекста означает либо «все элементы» строки, либо отрицательный результат поиска.

Примеры использования методов строк-объектов

Примеры работы со строками разных типов

#include <cstring>

#include <string> //строковый класс

 

int main() {

char c1[80], c2[80], c3[80]; //строки с завершающим нулем

string s1, s2, s3; //строки-объекты

 

//копирование строк

strcpy (c1,"old string one "); //дает warning C4996
// strcpy_s (string, "Hello world from "); не дает warning C4996

strcpy (c2, c1); //дает warning C4996

s1 = "new string one ";

s2 = s1;

cout << c1 <<"\n";

cout << c2 <<"\n";

cout << s1 <<"\n";

cout << s2 <<"\n";;

 

//конкатенация строк

strcpy(c3,c1); //дает warning C4996

strncat (c3,c2,strlen(c2)); //дает warning C4996

// strncat_s (string, "Hello world from "); не дает warning C4996

s3=s1+s2;

cout << c3 <<"\n";

cout << s3 <<"\n";

 

//сравнение строк

if (strcmp(c2, c3) <0) cout << c2;

else cout << c3;

cout << "\n";

 

if (s2 < s3) cout << s2;

else cout << s3;

cout << "\n";

 

getch();

return 0;

}

 



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 200; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.170.227 (0.006 с.)