С клавиатуры вводится полноценный текст, с любыми знаками препинания, пробелами и т.д. Текст вводится на любом языке, по выбору.
Выбрать из текста, и распечатать столбиком с нумерацией, слова, в которых есть удвоенные согласные буквы.
Для решения задачи можно использовать либо массив и строки типа char, либо массив и строки типа wchar_t.
Задача должна быть выполнена с помощью стандартных библиотек, чтобы программа могла одинаково работать как в ОС Windows, так и в ОС Linux и ОС Android.
Программы, нормально работающие только в одной из указанных ОС, не считаются решением задачи.
C/C++
Выбрать из текста слова, в которых имеются удвоенные согласные буквы
#include
#include
#include
#include
#include
#include
using namespace std;
bool find_word(const string& word) {
string vowels{ "aeiouy" };
const auto n = word.length();
for (size_t i = 1; i < n; ++i) {
const char a = tolower(word[i]);
const char b = tolower(word[i - 1]);
if (a > 0 && b > 0 && a == b && vowels.find(a) == string::npos) {
return true;
}
}
return false;
}
int main() {
cout > word) {
if (find_word(word)) {
cout
Полноценный, удвокнные , массив
#include
#include
#include
#define BUFFER_SIZE 256
#define DELIM L" "
static const wchar_t *vowels = {
L"ауоиэыяюеёАУОИЭЫЯЮЕЁ" // russian
L"aeiouyAEIOUY" // english
// ...
};
static size_t _no = 0;
static int is_vowel(wchar_t ch) {
int i;
if (!ch) {
return 1;
}
for (i = 0; vowels[i]; i++) {
if (vowels[i] == ch) {
return 1;
}
}
return 0;
}
static void word_print(const wchar_t *word)
{
wprintf(L"%-4lu | %ls\n", ++_no, word);
}
static int word_check(const wchar_t *word)
{
do {
if ((*word == word[1]) && !is_vowel(*word)) {
return 1;
}
} while (*word++);
return 0;
}
int main(void)
{
wchar_t buffer[BUFFER_SIZE] = { L'0' };
wchar_t *token, *state;
setlocale(LC_CTYPE, "");
fgetws(buffer, BUFFER_SIZE, stdin);
token = wcstok(buffer, DELIM, &state);
do {
if (word_check(token)) {
word_print(token);
}
} while (token = wcstok(NULL, DELIM, &state));
return 0;
}
Похожие вопросы
- Напишите программу, которая подсчитает и выведет количество слов длины 10, которые можно составить из букв a, b, c.
- Слова с прописной буквы с++
- Задан текст. Определить, сколько слов начинается на заданную букву.
- Дан текст на кириллице произвольного размера. Вывести отдельно все знаки препинания и слова текста.
- Посчитать самое длинное слово в тексте
- Распечатать слова данного текста в обратном порядке c++ Надо переделать с помощью указателей
- C++ Самая частая буква
- В LINUX OS Написать программу, которая из командной строки получает целое число N и некоторый текст “Text”.
- Дан текст, в котором имеются числа. Найти их сумму и максимальное число на си
- Определить встречается ли в последовательности группа букв 'one', определить последнее вхождение этой группы