М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
янина1511
янина1511
21.10.2022 13:45 •  Информатика

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

👇
Ответ:
gea99
gea99
21.10.2022
Привет! Разберем эту задачу по шагам.

1. В начале программы нужно подключить необходимые библиотеки для работы со строками в C++. Для этого добавим следующую строку в начало программы:

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

2. Затем создадим функцию `main`, которая будет выполнять основную логику программы:

```c++
int main() {
// код программы будет здесь
return 0;
}
```

3. Внутри функции `main` создадим переменную `input`, в которую пользователь будет вводить строку:

```c++
std::string input;
std::getline(std::cin, input);
```

В этом коде мы использовали функцию `std::getline`, чтобы считать строку целиком, включая пробелы.

4. Далее создадим переменную `wordCount` для подсчета слов в строке и установим ее значение равным 0. Затем пройдемся по каждому символу строки и будем увеличивать `wordCount` каждый раз, когда встречаем пробел:

```c++
int wordCount = 0;

for (char ch : input) {
if (ch == ' ') {
wordCount++;
}
}
```

5. Для определения количества символов во втором слове нужно найти начало и конец второго слова в строке. Для этого воспользуемся индексами пробелов. Заведем переменные `startPos` и `endPos` и пройдемся по строке, чтобы их найти:

```c++
int startPos = -1;
int endPos = -1;
int spaceCount = 0;

for (int i = 0; i < input.length(); i++) {
if (input[i] == ' ') {
spaceCount++;
} else {
if (spaceCount == 1 && startPos == -1) {
startPos = i;
}
if (spaceCount == 2) {
endPos = i;
break;
}
}
}
```

В этом коде мы используем две переменные: `spaceCount` для подсчета пробелов и индекс `i`. Если находим первый пробел (когда `spaceCount` равен 1) и `startPos` еще не установлен (равен -1), то устанавливаем `startPos` равным текущему индексу. Если находим второй пробел (когда `spaceCount` равен 2), то устанавливаем `endPos` равным текущему индексу и прерываем цикл.

6. Наконец, выведем полученный результат на экран. Для этого воспользуемся методом `substr`, который позволяет выделить подстроку из исходной строки:

```c++
std::string secondWord = input.substr(startPos, endPos - startPos);
std::cout << "Результат: " << secondWord << std::endl;
```

Метод `substr` принимает два параметра: индекс начала и длину подстроки. В данном случае мы указываем `startPos` как начало и вычитаем из `endPos` значение `startPos`, чтобы получить длину подстроки.

7. Наконец, чтобы узнать количество символов во втором слове, можно использовать метод `length`:

```c++
int charCount = secondWord.length();
std::cout << "Количество символов во втором слове: " << charCount << std::endl;
```

Вот и все! Полный код программы выглядит так:

```c++
#include
#include

int main() {
std::string input;
std::getline(std::cin, input);

int wordCount = 0;

for (char ch : input) {
if (ch == ' ') {
wordCount++;
}
}

int startPos = -1;
int endPos = -1;
int spaceCount = 0;

for (int i = 0; i < input.length(); i++) {
if (input[i] == ' ') {
spaceCount++;
} else {
if (spaceCount == 1 && startPos == -1) {
startPos = i;
}
if (spaceCount == 2) {
endPos = i;
break;
}
}
}

std::string secondWord = input.substr(startPos, endPos - startPos);
std::cout << "Результат: " << secondWord << std::endl;

int charCount = secondWord.length();
std::cout << "Количество символов во втором слове: " << charCount << std::endl;

return 0;
}
```

Эта программа позволит пользователю ввести строку, разделенную пробелами, и выведет полученный результат на экран,а также покажет количество символов во втором слове.
4,7(73 оценок)
Проверить ответ в нейросети
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ