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

kokeoru1 kokeoru1    3   12.06.2019 12:03    19

Ответы
дашкатопикепи дашкатопикепи  14.01.2024 11:14
Привет! Разберем эту задачу по шагам.

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;
}
```

Эта программа позволит пользователю ввести строку, разделенную пробелами, и выведет полученный результат на экран,а также покажет количество символов во втором слове.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика