C++
Вимоги до звіту: Звіт повинен бути оформлений у вигляді електронного
документа: програмний код з коментарями, висновки про результати виконуваних дій
і копії екрану. Розмір файлу звіту до 2 МБ зі скріншотами.
ЗАВДАННЯ:
Задано рядок, яка складається з символів. Символи складаються в слова. Слова
відокремлюються одним або декількома пробілами. В кінці тексту ставиться крапка.
Текст містить не більше 255 символів. Виконати введення рядка, використовуючи
функцію cin.getline (s, 255) і обробку рядка відповідно до завдання.
1. Надрукувати найдовше і найкоротше слово в цьому рядку.
2. Надрукувати всі слова, які не містять голосних букв.
3. Надрукувати всі слова, які містять по одній цифрі.
4. Надрукувати всі слова, які збігаються з першим словом.
5. Перетворити рядок таким чином, щоб спочатку в ньому були надруковані
тільки букви, а потім тільки цифри, не змінюючи порядку проходження символів в
рядку.
6. Перетворити рядок так, щоб всі букви в ньому були відсортовані за алфавітом.
7. Перетворити рядок таким чином, щоб в його початку були записані слова, які
містять тільки цифри.
8. Прибрати з рядка всі зазначені символи і відповідно зменшити його розмір.
Ответы
#include <iostream>
#include <cstring>
#include <cctype>
#include <algorithm>
const int MAX_SIZE = 255;
void printLongestShortestWord(const char* text) {
char longestWord[MAX_SIZE];
char shortestWord[MAX_SIZE];
std::istringstream iss(text);
iss >> longestWord; // Прочитать первое слово и считать его и самым длинным и самым коротким
strcpy(shortestWord, longestWord);
char word[MAX_SIZE];
while (iss >> word) {
if (strlen(word) > strlen(longestWord)) {
strcpy(longestWord, word);
}
if (strlen(word) < strlen(shortestWord)) {
strcpy(shortestWord, word);
}
}
std::cout << "Longest word: " << longestWord << std::endl;
std::cout << "Shortest word: " << shortestWord << std::endl;
}
void printWordsWithoutVowels(const char* text) {
char word[MAX_SIZE];
std::istringstream iss(text);
while (iss >> word) {
bool hasVowel = false;
for (int i = 0; i < strlen(word); i++) {
if (tolower(word[i]) == 'a' || tolower(word[i]) == 'e' || tolower(word[i]) == 'i' || tolower(word[i]) == 'o' || tolower(word[i]) == 'u') {
hasVowel = true;
break;
}
}
if (!hasVowel) {
std::cout << word << std::endl;
}
}
}
void printWordsWithSingleDigit(const char* text) {
char word[MAX_SIZE];
std::istringstream iss(text);
while (iss >> word) {
int digitCount = 0;
for (int i = 0; i < strlen(word); i++) {
if (isdigit(word[i])) {
digitCount++;
}
}
if (digitCount == 1) {
std::cout << word << std::endl;
}
}
}
void printWordsMatchingFirstWord(const char* text) {
char firstWord[MAX_SIZE];
std::istringstream iss(text);
iss >> firstWord; // Прочитать первое слово
char word[MAX_SIZE];
while (iss >> word) {
if (strcmp(word, firstWord) == 0) {
std::cout << word << std::endl;
}
}
}
void rearrangeString(const char* text) {
std::string letters;
std::string digits;
for (int i = 0; i < strlen(text); i++) {
if (isalpha(text[i])) {
letters += text[i];
}
else if (isdigit(text[i])) {
digits += text[i];
}
}
std::cout << letters << digits << std::endl;
}
void sortStringAlphabetically(char* text) {
std::sort(text, text + strlen(text));
std::cout << text << std::endl;
}
void moveDigitsToFront(char* text) {
std::string digits;
std::string nonDigits;
for (int i = 0; i < strlen(text); i++) {
if (isdigit(text[i])) {
digits += text[i];
}
else {
nonDigits += text[i];
}
}
strcpy(text, digits.c_str());
strcat(text, nonDigits.c_str());
std::cout << text << std::endl;
}
void removeCharacters(char* text, const char* characters) {
int len = strlen(characters);
for (int i = 0; i < len; i++) {
char* pos = strchr(text, characters[i]);
while (pos != nullptr) {
memmove(pos, pos + 1, strlen(pos));
pos = strchr(text, characters[i]);
}
}
std::cout << text << std::endl;
}
int main() {
char text[MAX_SIZE];
std::cout << "Enter a string: ";
std::cin.getline(text, MAX_SIZE);
printLongestShortestWord(text);
printWordsWithoutVowels(text);
printWordsWithSingleDigit(text);
printWordsMatchingFirstWord(text);
char rearrangedText[MAX_SIZE];
strcpy(rearrangedText, text);
rearrangeString(rearrangedText);
char sortedText[MAX_SIZE];
strcpy(sortedText, text);
sortStringAlphabetically(sortedText);
char movedDigitsText[MAX_SIZE];
strcpy(movedDigitsText, text);
moveDigitsToFront(movedDigitsText);
char removedCharactersText[MAX_SIZE];
strcpy(removedCharactersText, text);
const char* charactersToRemove = ".,;:!"; // Здесь можно указать символы, которые нужно удалить
removeCharacters(removedCharactersText, charactersToRemove);
system("pause");
return 0;
}
Программа принимает ввод строки от пользователя и выполняет указанные задания. Каждая функция реализует одно из заданий и выводит соответствующий результат.
Вам также потребуется добавить необходимые заголовочные файлы в начало программы:
```cpp
#include <iostream>
#include <cstring>
#include <cctype>
#include <algorithm>