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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gr1nberg
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
#1

Строки. ошиьки наборщиков текста - C++

03.05.2011, 19:12. Просмотров 556. Ответов 8
Метки нет (Все метки)

Задача:
Часто встречающаяся ошибка начинающих наборщиков – дважды записанное слово. Обнаружить и исправить такие ошибки.
Можно написать программу для microsoft visual studio

Заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 19:12     Строки. ошиьки наборщиков текста
Посмотрите здесь:

Часто встречающаяся ошибка начинающих наборщиков — дважды записанное слово. В заданном текстовом файле обнаружить и исправить такие ошибки в тексте - C++
Часто встречающаяся ошибка начинающих наборщиков — дважды записанное слово. В заданном текстовом файле обнаружить и исправить такие ошибки...

Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @) - C++
Разработать алгоритм и программу для разбиения текста на строки (как признак конца строки в тексте использовать символ @). помогите для...

строки. расшифровка текста - C++
Задача: В записке слова зашифрованы — каждое из них записано наоборот. Расшифровать сообщение. Написал код не знаю как исправить ошибки...

Преобразование строки текста - C++
Добрый день всем. Возникла проблема со строками. Напишите код на С, пожалуйста. Задание: Переобразовать строку текста, записав...

сортировка строки текста - C++
Помогите написать программу, несколько дней уже бьюсь, всё никак не идёт Дана строка. Словом текста считается любая последовательность...

Строки (преобразование текста) - C++
Ввести массив строк текста с неизвестным заранее количеством строк и строку символов разделителей. Признаком ввода последней строки...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.05.2011, 19:14     Строки. ошиьки наборщиков текста #2
Т.е. "приветпривет" - это ошибка?
gr1nberg
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
03.05.2011, 19:18  [ТС]     Строки. ошиьки наборщиков текста #3
Цитата Сообщение от Mиxaил Посмотреть сообщение
Т.е. "приветпривет" - это ошибка?
это не ошибка
пример:
"Привет привет как дела дела"
Вывод правильный ответ такой:
"Привет как дела"
тоесть слова должен разделять какойто знак
Kastaneda
Форумчанин
Эксперт С++
4510 / 2852 / 227
Регистрация: 12.12.2009
Сообщений: 7,246
Записей в блоге: 1
Завершенные тесты: 1
03.05.2011, 19:29     Строки. ошиьки наборщиков текста #4
Вот же, несколько часов назад писали. То, что там выше - согласен, сложно для понимания, но этот код на чистом C, проще не куда.
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.05.2011, 19:35     Строки. ошиьки наборщиков текста #5
Вот, потестируйте, накатал быстро:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
 
void ChangeString (std::string Str)
{
    std::string S = Str + " ";
    std::string FirstWord, SecondWord;
    while (!S.empty())
    {
        FirstWord.append (S, 0, S.find(" "));
        S.erase(0, S.find(" ") + 1);
        if (!S.empty())
        {
            SecondWord.append(S, 0, S.find(" "));
            if (FirstWord == SecondWord)
                Str.erase(Str.find(SecondWord), SecondWord.length() + 1);
        }
        FirstWord.clear();
        SecondWord.clear();
    }
    std::cout << Str << std::endl;
}
 
int main()
{
    std::string MainString;
    MainString = "hello hello how are are you";
    ChangeString (MainString);
    std::cin.get();
    return 0;
}
Добавлено через 1 минуту
Я плохо, конечно, сделал, что изменил строку пользователя, удаляя слова!
Сохраните в другую переменную, и все дела!

Добавлено через 1 минуту
Странно, работает на всех текстах, которые я ставил!
gr1nberg
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
03.05.2011, 19:36  [ТС]     Строки. ошиьки наборщиков текста #6

Я плохо, конечно, сделал, что изменил строку пользователя, удаляя слова!
Сохраните в другую переменную, и все дела!
можно как нибудь более просто написать
просто я первый курс и тока начал изучать нечего не понял что тут написано)))
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.05.2011, 19:43     Строки. ошиьки наборщиков текста #7
Это код на чистом Си++...
Принцип такой: сначала вырезаем первое слово, затем - второе, если они равны, то вырезаем второе слово из исходной строки, и так в цикле, пока не встретим отличное слово...

Не по теме:

Я сам на первом курсе, в универе только Pascal пока



Добавлено через 2 минуты
Немного оптимизировал:
Замените строку
C++
1
Str.erase(Str.find(SecondWord), SecondWord.length() + 1);
на
C++
1
Str.erase(Str.find(SecondWord + " " + SecondWord), SecondWord.length() + 1);
gr1nberg
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 20
03.05.2011, 19:48  [ТС]     Строки. ошиьки наборщиков текста #8
Цитата Сообщение от Mиxaил Посмотреть сообщение
Это код на чистом Си++...
Принцип такой: сначала вырезаем первое слово, затем - второе, если они равны, то вырезаем второе слово из исходной строки, и так в цикле, пока не встретим отличное слово...

Не по теме:

Я сам на первом курсе, в универе только Pascal пока



Добавлено через 2 минуты
Немного оптимизировал:
Замените строку
C++
1
Str.erase(Str.find(SecondWord), SecondWord.length() + 1);
на
C++
1
Str.erase(Str.find(SecondWord + " " + SecondWord), SecondWord.length() + 1);
все равно не понимаю))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2011, 19:54     Строки. ошиьки наборщиков текста
Еще ссылки по теме:

Чтение/анализ строки текста - C++
Уважаемые господа, помогите советом. Нужно строку текста (из четного кол-ва символов) разбить в на фрагменты по два символа (задать...

Из i-той строки текста вывести i-ое слово - C++
Здравствуйте! В строках я профан, поэтому обращаюсь к вам за помощью) Необходимо i-той строки вывести i-ое слово. То есть, из первой строки...

Строки(стринг).....удаление слов из текста - C++
искал по всему форуму, но подобной ситуации не нашёл( Задача такая: 1)вводится произвольный текст 2)вводится натуральное целое...

Изменение строки текста в exe файле - C++
Допустим у меня есть откомпелированная программа, и в ней есть string'и, которые можно изменить через любой hex редактор . Но как в них...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
03.05.2011, 19:54     Строки. ошиьки наборщиков текста #9
Строка
Цитата Сообщение от Mиxaил Посмотреть сообщение
while (!S.empty())
означает, что я проверяю, не пуста ли строка...
Строка
Цитата Сообщение от Mиxaил Посмотреть сообщение
FirstWord.append (S, 0, S.find(" "));
означает, что я копирую в FirstWord символы, начиная с 0 по номер вхождения первогопробела в строку S...
Строка
Цитата Сообщение от Mиxaил Посмотреть сообщение
S.erase(0, S.find(" ") + 1);
означает, что из строки S удаляем слово, начинающиеся с начала, и заканчивающееся первым пробелом...
Строка
Цитата Сообщение от Mиxaил Посмотреть сообщение
FirstWord.clear();
означает, что я очищаю строку для дальнейшего использования!

Добавлено через 1 минуту
Если знаете английский, почитайте
About C++, тут все написано...
Yandex
Объявления
03.05.2011, 19:54     Строки. ошиьки наборщиков текста
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru