Лабораторная № 3 Програмирование. Лаб3(2021). Лабораторная работа 3 по теме " Массивы и строки". Цель работы приобретение навыков получение навыков описания одномерных и двумерных массивов
Скачать 222.5 Kb.
|
Пример программы с использованием 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; } |