#include <iostream>
using namespace std;
int main()
{
string str;
cout << "Old string:\n";
getline(cin,str);//если cin >> str, то считывание лишь до первого пробела
for (int i=0; i < str.length(); i++) //таким образом перемещаемся по элементах строки
{
if (str[i] == '.')// если в тексте найдено точку...
{
if (str[i + 1] == '.' && str[i + 2] == '.') // ...если дальше есть две точки подряд...
i+=2;//...то идти дальше: i+=2 здесь и i++ в условии цикла - итого перепрыгнуть через те две точки (i+=3)
else //если дальше нет двух точек подряд...
{
for (int j = 0; j < 2; j++)// ...то по одной...
{
str.insert(i, ".");// ..."создать" их, используя функцмю str.insert(pos,key), где первый аргумент - позиция вышенайденной точки, перед которой "создаём" точку (вставляем 2-й аргумент)
i++;//мы сейчас на новосозданной точке, поэтому идти дальше: переместиться на один символ вперёд - итого мы сейчас на той точке, которую мы не создавали и которая была в Old string
}
}}}
cout << "New string =\n" << str;
return 0;
}
Программы оптического распознавания документов
Очень часто возникает необходимость ввести в компьютер несколько страниц текста из книги, статью из журнала или газеты и т.д. Конечно, можно затратить определённое время и просто набрать этот текст с клавиатуры. Но чем больше исходный текст, тем больше времени будет потрачено. Для ввода текстов в память компьютера с бумажных носителей используют сканеры и программы распознавания символов. Одной из наиболее известных программ такого типа является ABBYY FineReader.
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Паскаль.ввести одномерный массив a, вывести его. переставить в обратном порядке все элементы между максимальным и предпоследним отрицательным элементом. , не могу найти предпоследний элемент в массиве