10.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <iostream>
  2. using namespace std;
  3. int main(){
  4. string str, new_str; // вводимая и изменённая строки
  5. int space = 0; // счётчик пробелов
  6. bool flag = false;
  7. while(true){
  8. cout << "Input string: " << endl;
  9. getline(cin, str); // ввод строки
  10. if (str.empty()){
  11. cout << "String can't be empty." << endl; // вывод сообщения об ошибке
  12. cout << "----------------------" << endl;
  13. }
  14. else {
  15. for (int i = 0; i < str.size(); i++){ // цикл на полную строку
  16. if (str[i] == ' '){ // если текущий символ является пробелом, то
  17. space++; // увеличичваем счётчик пробелов
  18. }
  19. }
  20. if (space == str.size()) { // если количество пробелов равно размеру стоки, то
  21. cout << "String have only spaces." << endl; // вывод сообщения об ошибке
  22. cout << "----------------------" << endl;
  23. space = 0; // сбрасываем счётчик пробелов
  24. }
  25. else { // если строка не пуста и не заполнена пробелами, то
  26. break; // останавливаем цикл
  27. }
  28. }
  29. }
  30. flag = false;
  31. for (int i = 0; i < str.size(); i++){ // цикл на полную вводимую строку
  32. if (str[i] == ' '){ // если текущий символ является пробелом, то
  33. if (flag){
  34. continue;
  35. }
  36. flag = true;
  37. }
  38. else {
  39. flag = false;
  40. }
  41. new_str.push_back(str[i]); // добавляем в изменённую строку символ
  42. }
  43. cout << "Output stroke: " << endl << new_str << endl; // вывод изменённой строки
  44. return 0; // успешное завершение программы
  45. }