Вопрос задан 24.06.2023 в 10:50. Предмет Информатика. Спрашивает Журавлева Мария.

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> #include <algorithm> int main() { std::string input; std::getline(std::cin, input); // Считываем входную строку // Используем алгоритм std::unique для удаления двух и более пробелов подряд auto new_end = std::unique(input.begin(), input.end(), [](char a, char b) { return a == ' ' && b == ' '; }); // Удаляем пробелы в начале и в конце строки if (new_end != input.begin() && *(new_end - 1) == ' ') { new_end--; } if (input.begin() != new_end && *(input.begin()) == ' ') { new_end--; input.erase(input.begin()); } // Выводим преобразованную строку std::cout << input << std::endl; return 0; }

Этот код сначала удаляет два и более пробела подряд с использованием std::unique, а затем удаляет пробелы в начале и в конце строки. Результат выводится на экран.

0 0

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

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

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

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