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

Доступ к элементу строки, метод at, метод copy

#include <string>

int main()

{

char charray[80];

string word;

cout << "Enter a word: ";

cin >> word;

size_t wlen = word.length(); // size_t – беззнаковый целочисленный тип, //используемый для представления результата операции sizeof, // описан в <stdio.h>: typedef unsigned size_t;

cout << "One character at a time: ";

for(size_t j=0; j<wlen; j++)

{cout << word.at(j); //генерируется исключение //при выходе (j<wlen+10) за длину строки,

cout << word[j]; } //нет предупрежденй //при выходе за длину строки

word.copy(charray, wlen, 0); //копирование строки-объекта в массив

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

charray[wlen] = '\0';

cout << "\nArray contains: " << charray << endl;

_getch();

return 0;

}

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

One character at a time: MMaann

Array contains: Man

Методы сравнения

#include <string>

int main()

{

string aName = "George";

string userName;

cout << "Enter your first name: ";

cin >> userName;

if ( ! userName.compare("")) {cout << "pusto" << endl;

return 1;}

if(userName==aName) //operator ==

cout << "Greetings, George\n";

else if(userName < aName) //operator <

cout << "You come before George\n";

else

cout << "You come after George\n";

//или

if (!userName.compare(aName)) cout <<" = ";

else

if (userName.compare(aName)<0) cout <<" < ";

else cout << " > ";

int n = userName.compare(0, 2, aName, 0, 2); //функция compare()

cout << "The first two letters of your name ";

if(n==0)

cout << "match ";

else if(n < 0)

cout << "come before ";

else

cout << "come after ";

cout << aName.substr(0, 2) << endl;

_getch();

return 0;

}

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

Enter your first name: George

Greetings, George

The first two letters of your name match Ge

или:

Enter your first name: Ivan

You come after George

The first two letters of your name come after Ge

Методы поиска подстроки

#include <string>

int main()

{

string s1 =

"In Xanadu did Kubla Kahn a stately pleasure dome decree";

size_t n;

n = s1.find("Kubla"); // в строке s1 ищется самое левое // вхождение данной строки

cout << "Found Kubla at " << n << endl;

n = s1.find_first_of("spde"); // в строке s1 ищется //первое вхождение любого из

// символов данной строки

cout << "First of spde at " << n << endl;

n = s1.find_first_not_of("aeiouAEIOU"); //в исходной строке ищется //первое вхождение символа,

//отличного от указанных в данной строке

cout << "First consonent at " << n << endl;

_getch();

return 0;

}

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

Found Kubla at 14

First of spde at 7

First consonent at 1