Лабораторная работа 2.5. Строки

Цель. Получить практические навыки обработки строк с использованием циклов.

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

Задача 1. Напишите программу, которая принимает с клавиатуры слово, состоящее из четного количества букв, и выводит его, меняя местами первую и вторую половины. Например, «молоко» – «окомол».

#include <string>

#include <windows.h>

#include <iostream>

using namespace std;

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string word;

cout << "Введите слово:\n";

cin >> word;

int l = word.length();

if (l%2 == 0) {

//Вывод второй половины

for (int i=0; i<l/2; i++) {

cout << word[l/2+i];

}

//Вывод первой половины

for (int i=0; i<l/2; i++) {

cout << word[i];

}

cout << endl;

} else {

cout << "Нечетное число букв\n";

}

system("pause");

return 0;

}

Задача 2. Напишите программу, которая принимает с клавиатуры строку, являющуюся двоичной записью некоторого числа, и определяет это число.

#include <string>

#include <windows.h>

#include <iostream>

using namespace std;

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string str;

cout << "Введите строку:\n";

cin >> str;

int l=str.length();

int number=0, st=1;

for (int i=0; i<l; i++) {

if (str[l-i-1] == '1') {

number += st;

}

st*=2;

}

cout << "Число=" << number << endl;

system("pause");

return 0;

}

Задача 3. Напишите программу, которая принимает с клавиатуры строку и проверяет, есть ли в ней хотя бы одна латинская гласная буква.

#include <string>

#include <windows.h>

#include <iostream>

using namespace std;

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string str;

cout << "Введите строку:\n";

cin >> str;

bool yes = false;

for (int i=0; i<str.length(); i++) {

if (str[i]=='a' || str[i]=='e' || str[i]=='i' || str[i]=='o' || str[i]=='u' || str[i]=='y') {

yes = true;

}

}

yes? cout << "Есть": cout << "Нет";

system("pause");

return 0;

}

Задача 4. Напишите программу, которая принимает с клавиатуры строку и сообщает, есть ли в ней четыре подряд идущих одинаковых символа.

#include <string>

#include <windows.h>

#include <iostream>

using namespace std;

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string str;

cout << "Введите строку:\n";

cin >> str;

bool yes = false;

for (int i=3; i<str.length(); i++) {

if (str[i]==str[i-1] && str[i]==str[i-2] && str[i]==str[i-3]){

yes = true;

}

}

yes? cout << "Есть": cout << "Нет";

system("pause");

return 0;

}

Задача 5. Напишите программу, которая принимает с клавиатуры строку и выводит ее, дублируя все цифры.

#include <string>

#include <windows.h>

#include <iostream>

using namespace std;

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string str;

cout << "Введите строку:\n";

cin >> str;

for (int i=0; i<str.length(); i++) {

//Выводим все символы

cout << str[i];

if (str[i]=='0' || str[i]=='1' || str[i]=='2' || str[i]=='3' || str[i]=='4' || str[i]=='5' || str[i]=='6' || str[i]=='7' || str[i]=='8' || str[i]=='9') {

//Дублируем цифры

cout << str[i];

}

}

cout << endl;

system("pause");

return 0;

}

ЗАДАЧИ

1. Напишите программу, которая принимает строку и выводит ее символы через запятую с пробелом. Например, морс – м, о, р, с.

2. Введите строку и выведите ее, вертикально (каждая буква на отдельной строчке). Сверху должна быть первая буква.

3. Введите строку и выведите ее, вертикально (каждая буква на отдельной строчке). Сверху должна быть последняя буква.

4. Напишите программу, которая принимает строку из нескольких слов, разделенных ровно одним пробелом, и выводит каждое из этих слов на отдельной строчке.

5. Введите строку и выведите ее наоборот. Например, сервиз – зиврес.

6. Напишите программу, которая принимает строку и выводит ее, исключая все пробелы.

7. Напишите программу, которая принимает строку и выводит ее, дублируя все символы. Например, сокол – ссооккоолл.

8. Введите строку и выведите ее, исключая символы, расположенные на четных позициях. Например, квартира – катр.

9. Введите строку и выведите ее, исключая символы, расположенные на нечетных позициях. Например, квартира – вриа.

10. Напишите программу, которая принимает строку и выводит ее, столько раз, какова ее длина. Например, слово барсук должно быть выведено шесть раз, поскольку содержит шесть букв.

11. Напишите программу, которая принимает строку, являющуюся двоичной записью числа, и определяет его вес Хэмминга.

12. Напишите программу, которая принимает строку и проверяет, есть ли в ней повторяющиеся символы.

13. Напишите программу, которая принимает строку и сообщает, есть ли в ней два подряд идущих одинаковых символа.

14. Напишите программу, которая принимает строку и сообщает, есть ли в ней три подряд идущих одинаковых символа.

15. Напишите программу, которая принимает с клавиатуры строку и символ и определяет, сколько раз символ встречается в строке.

16. Напишите программу, которая принимает с клавиатуры строку и символ и определяет номер позиции символа в строке. Если символ отсутствует в строке, то сообщить об этом. Если таких символов несколько, то взять позицию любого из них.

17. Напишите программу, которая принимает строку, являющуюся двоичной записью некоторого числа, и определяет это число.

18. Введите строку и сообщите, сколько слов в ней. Считайте, что все слова в строке разделены ровно одним пробелом.

19. Напишите программу, которая принимает строку и проверяет, является ли эта строка идентификатором согласно правилам языка C/С++. Проверять на совпадение с ключевыми словами не обязательно.

20. Напишите программу, которая принимает строку и проверяет, является ли она палиндромом.

21. Напишите программу, которая принимает строку и проверяет, есть ли в ней хотя бы одна русская гласная буква.

22. Напишите программу, которая принимает с клавиатуры строку и проверяет, есть ли в ней хотя бы одна цифра.

23. Напишите программу, которая принимает строку и определяет, сколько латинских гласных букв в ней.

24. Напишите программу, которая принимает строку и определяет, сколько русских гласных букв в ней.

25. Напишите программу, которая принимает с клавиатуры строку и определяет, сколько цифр в ней.

26. Напишите программу, которая принимает строку и выводит ее, дублируя все латинские гласные буквы.

27. Напишите программу, которая принимает строку и выводит ее, дублируя все русские гласные буквы.

28. Напишите программу, которая принимает две строки и определяет, в какой из них больше латинских гласных букв, или же в обеих строках этих букв поровну.

29. Введите две строки и определите, в какой из них больше цифр, или же в обеих строках цифр поровну.

30. Введите две строки и определите, в какой из них больше русских гласных букв, или же в обеих строках этих букв поровну.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: