Форум программистов, компьютерный форум CyberForum.ru

Текст и файл.... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Segmentation Fault http://www.cyberforum.ru/cpp-beginners/thread266929.html
Почему программа при попытке сравнить длины строк выдает segmentation fault? #include <iostream> #include <vector> #include <string> using namespace std; int max(int x,int y){ int max; if(x>y) max=x; else max=y; return max;
C++ Циклы (на С) Составить программу для нахождения чисел из интервала , имеющих наибольшее количество делителей. Не могу решить, весь мозг сломал. Помогите плз. http://www.cyberforum.ru/cpp-beginners/thread266927.html
C++ Задание цвета текста в консоли на C
Как задать цвет в с ?
C++ Вычислить количество элементов массива, равных нулю
1 задание) Вычислить количество элементов массива, равных нулю. 2 задание) Вычислить сумму элементов массива, расположенных после минимального элемента. 3 задание) Упорядочить элементы массива по возрастанию его модулей. Добавлено через 13 часов 35 минут Помогите плиз. очень надо к пятнице)))
C++ sqrt http://www.cyberforum.ru/cpp-beginners/thread266862.html
Как в с прошрамме написать sqrt(2-x)? У меня sqrt не считает, может есть еще вариант как написать данное выражение?
C++ Найти наибольшее количество подряд идущих цифр в строке Дан текст.Найти наибольшее количество подряд идущих цифр. ПОМОГИТЕ ПОЖАЛУЙСТА... подробнее

Показать сообщение отдельно
yuliyayuliya28
3 / 3 / 0
Регистрация: 06.03.2011
Сообщений: 319
30.03.2011, 13:32     Текст и файл....
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов записаны подряд несколько раз (предложение заканчивается точкой или восклицательным знаком). Получить в новом файле отредактированный текст, в котором удалены повторные вхождения слов в предложение.


Нашла на делфи...кто нибудь мог бы переписать её на с/с++?Заранее спасибо....



procedure TForm1.Button1Click(Sender: TObject);
const
Fn1 = 'file1.txt';
Fn2 = 'file2.txt';
//Список разделителей слов.
D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
var
F1, F2 : TextFile;
S, CurWord, LastWord : String;
i, P1, P2, LenS, LenWord : Integer;
begin
AssignFile(F1, Fn1);
Reset(F1);
AssignFile(F2, Fn2);
Rewrite(F2);

while not Eof(F1) do begin
Read(F1, S);

LenS := Length(S);
P1 := 0;
P2 := 0;
LastWord := '';
//Перебор символов прочитанной строки справа - налево.
//Т. е., по ходу движения, "предыдущее" слово - справа, "следующее" слово - слева.
for i := LenS downto 1 do begin
//Пропускаем разделители.
if S[i] in D then Continue;
//Отслеживаем конец слова.
if (i = LenS) or (S[i + 1] in D) then
P2 := i
;
//Отслеживаем начало слова.
if (i = 1) or (S[i - 1] in D) then begin
P1 := i;
LenWord := P2 - P1 + 1;
//Определяем очередное слово.
CurWord := Copy(S, P1, LenWord);
//Сравниваем текущее слово с предыдущим. Если равны - удаляем текущее слово
//из строки.
if CurWord = LastWord then
Delete(S, P1, LenWord)
;
LastWord := CurWord;
end;
end;

Write(F2, S);
if not Eof(F1) then begin
Readln(F1);
Writeln(F2);
end;
end;

CloseFile(F1);
CloseFile(F2);
end;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru