Предмет: Информатика, автор: Kukuwka0Ha0DepeBe

C++
ЗАВДАННЯ:
Задано рядок, яка складається з символів. Символи складаються в слова. Слова
відокремлюються одним або декількома пробілами. В кінці тексту ставиться крапка.
Текст містить не більше 255 символів. Виконати введення рядка, використовуючи
функцію cin.getline (s, 255) і обробку рядка відповідно до завдання.
1. Надрукувати найдовше і найкоротше слово в цьому рядку.
2. Надрукувати всі слова, які не містять голосних букв.
3. Надрукувати всі слова, які містять по одній цифрі.
4. Надрукувати всі слова, які збігаються з першим словом.
5. Перетворити рядок таким чином, щоб спочатку в ньому були надруковані
тільки букви, а потім тільки цифри, не змінюючи порядку проходження символів в
рядку.
6. Перетворити рядок так, щоб всі букви в ньому були відсортовані за алфавітом.
7. Перетворити рядок таким чином, щоб в його початку були записані слова, які
містять тільки цифри.
8. Прибрати з рядка всі зазначені символи і відповідно зменшити його розмір.

Ответы

Автор ответа: Аноним
0
Приведу примерный код решения задач на языке C++:

```c++
#include
#include
#include

using namespace std;

int main() {
char s[255];
cin.getline(s, 255);

// Находим самое короткое и длинное слово
char shortest_word[255], longest_word[255];
int shortest_len = 255, longest_len = 0;
int len = strlen(s), i = 0;
while (i < len) {
while (isspace(s[i])) i++;
int start = i;
while (isalnum(s[i])) i++;
int end = i;
if (end - start < shortest_len) {
shortest_len = end - start;
strncpy(shortest_word, s + start, shortest_len);
shortest_word[shortest_len] = '\0';
}
if (end - start > longest_len) {
longest_len = end - start;
strncpy(longest_word, s + start, longest_len);
longest_word[longest_len] = '\0';
}
}
cout << "Shortest word: " << shortest_word << endl;
cout << "Longest word: " << longest_word << endl;

// Находим слова без гласных букв
cout << "Words without vowels: ";
i = 0;
while (i < len) {
while (isspace(s[i])) i++;
int start = i;
while (isalnum(s[i])) {
if (strchr("aeiouyAEIOUY", s[i]) == NULL) {
cout << s[i];
}
i++;
}
if (i != start) cout << " ";
}
cout << endl;

// Находим слова с одной цифрой
cout << "Words with one digit: ";
i = 0;
while (i < len) {
while (isspace(s[i])) i++;
int start = i;
int digit_count = 0;
while (isalnum(s[i])) {
if (isdigit(s[i])) {
digit_count++;
}
i++;
}
if (digit_count == 1) {
cout << string(s + start, i - start) << " ";
}
}
cout << endl;

// Находим слова, которые совпадают с первым словом
char first_word[255];
i = 0;
while (isspace(s[i])) i++;
int start = i;
while (isalnum(s[i])) i++;
strncpy(first_word, s + start, i - start);
first_word[i - start] = '\0';
cout << "Words matching the first word \"" << first_word << "\": ";
i = 0;
while (i < len) {
while (isspace(s[i])) i++;
int start = i;
while (isalnum(s[i])) i++;
if (strncmp(s + start, first_word, i - start) == 0 && strlen(first_word) == i - start) {
cout << string(s + start, i - start) << " ";
}
}
cout << endl;

// Разделяем буквы и цифры
char letters[255], digits[255];
int letters_count = 0, digits_count = 0;
for (int i = 0; i < len; i++)
Похожие вопросы
Предмет: Геометрия, автор: Zazedkuvick