Главная страница

Лабораторная № 3 Програмирование. Лаб3(2021). Лабораторная работа 3 по теме " Массивы и строки". Цель работы приобретение навыков получение навыков описания одномерных и двумерных массивов


Скачать 222.5 Kb.
НазваниеЛабораторная работа 3 по теме " Массивы и строки". Цель работы приобретение навыков получение навыков описания одномерных и двумерных массивов
АнкорЛабораторная № 3 Програмирование
Дата29.09.2022
Размер222.5 Kb.
Формат файлаdoc
Имя файлаЛаб3(2021).doc
ТипЛабораторная работа
#704511
страница6 из 8
1   2   3   4   5   6   7   8

Пример программы с использованием string


#include

#include

#include

#include

// Для доступа к классу string

using namespace std;

int main()

// Определение и присваивание для строк

{

setlocale(LC_ALL, "Russian"); // Настройка консоли для вывода по-русски

string s1("Рыба");// Создание и инициализация строк

string s2 = "Мясо";// Создание и инициализация строк

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

s3 = s1; // Присваивание строк

cout << "s3 = " << s3 << endl; // Вывод строки

s3 = "Ни " + s1 + " ни ";// Склеивание строк

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

s3 += s2; // Добавление и присваивание строк

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

s1.swap( s2 ); // Перестановка строк

cout << s1 << " не " << s2 << endl;

string name;

cout << "Длина name = " << name.length() << endl;

cout << "Как Вас зовут? ";

cin >> name;

cout << "Здравствуйте, ";

setlocale(LC_ALL, ".866");

// Для вывода ранее введенных русских букв

cout << name << endl;

setlocale(LC_ALL, "Russian");

cout << "Длина Вашего имени " << name.length() << " букв\n";

system("pause");

return 0;

}

Программа выводит:

s3 = Рыба

s3 = Ни Рыба ни

s3 = Ни Рыба ни Мясо

Мясо не Рыба

Длина name = 0

Как Вас зовут? Владимир

Здравствуйте, Владимир

Длина Вашего имени 8 букв

Пример программы поиска слов в тексте с разными типами строк




Строка типа массива char


#include

#include

/* Задан текст, состоящий из слов, записанных через запятые,

и заканчивающийся точкой. Длина текста не больше 200 символов.

Необходимо выдать на экран слова и их длины*/

using namespace std;

int main()

{

setlocale(LC_ALL, "rus");

char x[200],slov[20];

int i,j,m,n,k,l,m1;

cout<<"Input x"<
cin>>x;//работает только для слов, разделенных запятой

n=strlen(x);

k=0; //к - количество слов

for(i=0; i
if(x[i]==','||x[i]=='.')

k++;

for(l=0; l
{

for(i=0; i
if(x[i]==','||x[i]=='.')

{

m1=i;

memset(slov, 0, sizeof slov);

strncpy(slov,x,i);

cout<
break;

}

for(m=0; m
{

for(j=0; j
x[j]=x[j+1];

}

}

return 0;

}

Строка типа string


#include

#include

/* Задан текст, состоящий из слов, записанных через запятые,

и заканчивающийся точкой. Длина текста не больше 200 символов.

Необходимо выдать на экран слова и их длины*/

using namespace std;

int main()

{

setlocale(LC_ALL, "rus");

string x ; // исходная строка

int i=0, j=0;

int kol=0; //количество найденных слов

cout<<"Ввод строки символов:";

getline(cin,x);

cout<<"Строка x: "<
//Формирование массива слов ar[20]

string ar[100];

i=x.find(",");

j=x.find(".");

if (i<0||j<0) cout<<"Текст не корректен"<
else

{

do

{

i=x.find(",");

j=x.find(".");

if (i>0)

{

//Копируем в элемент массива слово - i символов

ar[kol].assign(x,0,i);

//Удаляем сохраненное в массив слово,

//заканчивающееся запятой, из исходной строки x

x.erase(0,i+1);

}

else

if (j>0)

{

//Копируем в элемент массива слово - j символов

ar[kol].assign(x,0,j);

//Удаляем сохраненное в массив слово,

//заканчивающееся точкой, из исходной строки x

x.erase(0,j+1);

}

kol++;//Увеличиваем количество найденных слов

}

while (i>0&&j>0);

cout<
cout.width(7); cout<<" Cлово ";

cout.width(18); cout<<" Длина слова "<< endl;

for (i=0;i
{

cout.width(7); cout<
cout.width(18); cout<
}

}

return 0;

}
1   2   3   4   5   6   7   8


написать администратору сайта