Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб_8_метод_указания.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
622.59 Кб
Скачать

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

#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;

}

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

#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 //может вместить строка без дополнительного выделения памяти