Цель. Получить практические навыки обработки строк с использованием циклов.
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ
Задача 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. Введите две строки и определите, в какой из них больше русских гласных букв, или же в обеих строках этих букв поровну.