Написать программу, которая добавляет пробелы в строкуто есть: если в тексте есть знак препинания «.», «, », «! » или «? », и после отсутствует пробел)
Var s1,s2: string; i,k: integer; begin readln(s1); k: =length(s1)-1; s2: =''; for i: =1 to k do begin s2: =s2+s1[i]; case s1[i] of '.',',','! ','? ': if s1[i+1]< > ' ' then s2: =s2+' '; end; end; s2: =s2+s1[k+1]; writeln(s2) end.
arteevdimon
15.02.2021
Нету пожелания по поводу языка, так то пишу на с++. с объяснением. #include< iostream> #include< fstream> #include< string> // подключаю библиотеку для работы со строками #include < sstream> // подключаю библиотеку для работы с функцией erase using namespace std; int main() { string tt; //заказываю строку cin > > tt; // читаю строку while (tt.find('3')< tt.{ // пока символ 3 присутствует в tt.erase(tt.find('3'), 1); // мы удаляем его } while (tt.find('6')< tt.{ // пока символ 6 присутствует в tt.erase(tt.find('6'), 1); // удаляем его } cout < < tt; // вывод строки return 0; } как то так, причем вводимое число может быть огромным, имеющее больше чем 255 знаков.
Natella-874535
15.02.2021
#include < iostream> #include < list> using namespace std; int main() { list< int> mylist; //делаем со списком, что хотим mylist.push_back(1); mylist.push_back(2); mylist.push_back(3); mylist.push_back(-4); mylist.push_back(5); for (auto i : mylist) { cout < < i < < " "; } cout < < "\n"; //удаляем последний отрицательный элемент auto it = mylist.end(); while (*it > 0) { if (it == mylist. { cout < < "not found.\n"; return 0; } it--; } //делаем со списком, что хотим mylist.erase(it); for (auto i : mylist){ cout < < i < < " "; } return 0; }