Определение строк, присваивание, конкатенация, вычисление длины 


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



ЗНАЕТЕ ЛИ ВЫ?

Определение строк, присваивание, конкатенация, вычисление длины



#include <string>

int main()

{

string s1("Man"); //определение строки-объекта и ее

//инициализация строкой-массивом

string s2 = "Beast";

string s3; //определение пустой строки

string s4("larlarlar",3); //определение строки-объекта и ее

//инициализация 3-мя символами строки-массива

string s5(10,'.'); //определение строки-объекта и ее

//инициализация строкой-массивом из 10 точек

string s6(s1); //определение строки-объекта s6

//как копии строки-объекта s1

string s7(s2,1,5); //определение строки-объекта s7 и ее

//инициализация 5-ю символами строки s2, начиная с символа 1

 

s3 = s1; //присваивание

cout << "s3 = " << s3 << endl;

string s0;

s0 = '1'; //строке можно присваивать отдельный символ

s0 = "bbbbbb"; // строку старого стиля

s0 = s2; // другую строку-объект

 

s3 = "Neither " + s1 + " nor "; //конкатенация

s3 += s2; // конкатенация

cout << "s3 = " << s3 << endl;

 

s1.swap(s2); //обмен s1 и s2

cout << s1 << "\n" << s2 << endl;

cout << s3 << "\n" << s4 << endl;

cout << s5 << "\n" << s6 << endl;

cout << s7 << endl;

cout << s3.length()<< " "
<< s3.size() << " "
<< s3.max_size()<< " "
<< s3.capacity() << endl;

_getch();

return 0;

}

Результаты работы программы:

s3 = Man

s3 = Neither Man nor Beast

Beast

Man

Neither Man nor Beast

lar

..........

Man

east

21 21 4294967294 31 //сравнить последнее и первое значения для строк разной длины

3 3 4294967294 15 //первое значение – это length()- размер строки

5 5 4294967294 15 //последнее значение – это capacity()- емкость строки

14 14 4294967294 15 //объем памяти, максимальное количество элементов, которое
37 37 4294967294 47 //может вместить строка без дополнительного выделения памяти

Ввод-вывод

#include <string>

int main() {

string s;

cout << "input slova:" << endl;

cin >> s; //ввод до первого пробельного символа

cout << s << endl; //вывод строки

cin.get(); //удаление из потока символа ‘\n’

cout << "input c probelami:" << endl;

getline(cin,s); //ввод строки с пробелами

cout << s << endl;

cout << "input strok c $:" << endl;

getline(cin,s,'$'); //ввод строки до символа завершения '$'

cout << s << endl;

_getch();

return 0;

}

 

// ввод-вывод

#include <string>

int main()

{

string full_name, nickname, address;

string greeting("Hello, ");

 

cout << "Enter your full name: ";

getline(cin, full_name); //ввод строки с пробелами

cout << "Your full name is: " << full_name << endl;

 

cout << "Enter your nickname: ";

cin >> nickname; //ввод строки-объекта

 

greeting += nickname; //добавление имени к строке-приветствию

cout << greeting << endl; //вывод: "Hello, Jim"

 

cout << "Enter your address on separate lines\n";

cout << "Terminate with '$'\n";

getline(cin, address, '$'); //ввод нескольких строк

cout << "Your address is: " << address << endl;

_getch();

return 0;

}

Результаты работы программы:

Enter your full name: lar str

Your full name is: lar str

Enter your nickname: mama

Hello, mama

Enter your address on separate lines

Terminate with '$'

aaa

bbb

ccc$

Your address is:

aaa

bbb

ccc

 

Методы корректировки

#include <string>

int main()

{

string s1("Quick! Send for Count Graystone.");

string s2("Lord");

string s3("Don't ");

 

s1.erase(0, 7); //удаление "Quick! "

s1.replace(9, 5, s2); //замена "Count" на "Lord"

s1.replace(0, 1, "s"); //замена 'S' на 's'

s1.insert(0, s3); //вставка "Don't " в начало

s1.erase(s1.size()-1, 1); //удаление '.'

s1.append(3, '!'); //добавление "!!!"

 

size_t x = s1.find(' '); //поиск пробела и возврат его позиции

while(x < s1.size()) //продолжать пока пробел не найден

{

s1.replace(x, 1, "/"); //замена пробела на слэш

x = s1.find(' '); //поиск следующего пробела

}

cout << "s1: " << s1 << endl;

_getch();

return 0;

}

 

Результаты работы программы:

s1: Don't/send/for/Lord/Graystone!!!

 

//методы assign, insert, erase, replace

#include <string>

int main() {

string s0, s01, s02,s03, s04;

s0.assign("aabb"); //s0=”aabb”

s01.assign(s0); //s01=s0

s02.assign("ccc"); //s02=”ccc”

s03.assign(s01,2,1); //s03 присваивается 2-ой символ из s01

s04.assign("abcd",3); //s04 присваивается первые 3 символa строки "abcd"

cout << "s0= " <<s0<< endl; //

cout << "s01= " <<s01 << endl;

cout << "s02= " <<s02 <<endl;

cout << "s03= " <<s03 <<endl;

cout << "s04= " <<s04 <<endl;

 

string s1 ("a"), s2("ok"), s3("les");

cout << "s1= " <<s1<< endl; //

cout << "s2= " <<s2 << endl;

cout << "s3= " <<s3 <<endl;

 

// insert, erase:

cout << "s3: " <<s3.insert(3,s1) << endl; //lesa

cout << "s3: " <<s3.insert(3,s2) <<endl; //lesoka

cout << "s3: " <<s3.erase(5,1) <<endl; //lesok

cout << "s3: " <<s3.insert(5,s1) <<endl; //lesoka

cout << "s3: " <<s3.erase(3,1) <<endl; //leska

 

// replace:

cout << "s3= " <<s3.replace(1,1,s1, 0,1) <<endl; //laska

string s ("mam");

cout << s.at(1) << endl; //будет выведен символ a

s.at(1)='o'; //символ a заменится на символ o

cout << s.at(1)<< "\n";

_getch();

return 0;

}

Результаты работы программы:

s0= aabb

s01= aabb

s02= ccc

s03= b

s04= abc

s1= a

s2= ok

s3= les

s3: lesa

s3: lesoka

s3: lesok

s3: lesoka

s3: leska

s3= laska

a

o

 



Поделиться:


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

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