Вопрос задан 30.09.2023 в 07:42. Предмет Информатика. Спрашивает Шишкин Валентин.

C ++ Пробелы по правиламВ строке имеется несколько слов, разделенных одним или несколькими

пробелами. Требуется убрать из текста лишние пробелы: два и более пробелов подряд, а также все пробелы в начале и в конце строки.Входные данныеНа вход программе подается строка, состоящая не более чем из 255 символов.Выходные данныеВыведите преобразованную строку.ПримерыВводВывод Odin Dva Tri Odin Dva Tri
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Конопатская Ксения.

Ответ:

#include <iostream>

#include <string>

using namespace std;

int main()

{

  int i=0;

  string s;

  getline(cin, s);

  while (s[i])

  {

      if (s[i]==' ' && s[i+1]==' '){

          s.erase(i,1); i--;

      }

      i++;

  }

  if (s[0]==' '){

      s.erase(0,1);

  }

  if (s[s.length() - 1]==' '){

      s.erase(s.length() - 1, s.length() - 1);

  }

  cout << s << endl;

  return 0;

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи вам потребуется написать программу на C++, которая удалит лишние пробелы из входной строки. Вот пример программы, которая выполняет это:

cpp
#include <iostream> #include <string> using namespace std; int main() { string input; getline(cin, input); // Считываем входную строку // Удаляем лишние пробелы в начале и в конце строки size_t start = input.find_first_not_of(" \t"); size_t end = input.find_last_not_of(" \t"); if (start != string::npos && end != string::npos) { input = input.substr(start, end - start + 1); } else { // Если строка состоит только из пробелов, то обнуляем её input = ""; } // Заменяем два и более пробела подряд на один пробел size_t found; while ((found = input.find(" ")) != string::npos) { input.replace(found, 2, " "); } cout << input << endl; // Выводим преобразованную строку return 0; }

Вы можете скопировать этот код в свою среду разработки C++ и запустить программу. Она сначала считает входную строку, затем удалит лишние пробелы в начале и в конце строки, и, наконец, заменит два и более пробела подряд на один пробел. Результат будет выведен на экран.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос