Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Строки(стринг).....удаление слов из текста - C++

13.12.2009, 15:24. Просмотров 746. Ответов 6
Метки нет (Все метки)

искал по всему форуму, но подобной ситуации не нашёл(
Задача такая:
1)вводится произвольный текст
2)вводится натуральное целое число N
3)выводится текст, заменяя каждое N слово (считая от начала) дефисом, то есть если ввести 3, то в каждой новой строке за место 3 слова должен быть "-"
Помогите кто сможет, задача не трудная вроде как и много сил не потребует. Пытался переделать коды типа http://www.cyberforum.ru/cpp-beginne...read71887.html , но так и не нашёл как обозначить N-ое слово чтоб его заменить
пысы: на С++....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2009, 15:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки(стринг).....удаление слов из текста (C++):

Удаление слов из текста - C++
Добрый день! есть задачка: Определить самое короткое слово в каждом предложении. Удалить эти слова из текста.Для обработки строк следует...

Удаление повторяющихся соседних слов из текста - C++
Помогите, пожалуйста, написать прогу: вводит строку (текст) из файла, удаляет в ней повторяющиеся рядом стоящие слова, и выводит...

Обработка текста, удаление повторного вхождения слов - C++
Помогите написать задачу на С: Задана фраза - последовательность, содержащая от 1 до 25 слов, в каждом из которых от 1 до 10 строчных...

Строки. Удаление слов - C++
1)Даны два слова(1 строка) . Из первого слова удалить все буквы, которые встречаются во втором слове.

Удаление слов из строки - C++
Имеются слова "in" "it" "is" "on" "the" которые надо удалить из строки "He is sitting on the table and watching films". Мне нужно, чтоб оно...

удаление слов из строки - C++
Здравствуйте! помогите пожалуйста!!! нужно удалить из строки все слова, заканчивающиеся на букву к, если они есть. проверку сделала, а...

6
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
13.12.2009, 16:14 #2
на быструю так
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
#include <iostream>
#include <string>
 
 
using namespace std;
 
int main(void)
{
    string str, strNumb="";
    int index, cnt=1,number;
 
    cout << "Enter text: "; getline(cin, str);  str+=" ";
    cout << "Enter number: "; cin>>number;
 
    while ((index=str.find_first_of(" "))!=string::npos)
    {
        if(cnt%number)  strNumb+=str.substr(0,index+1);
        else                        strNumb+="- ";
 
        str=str.substr(index+1);           
        ++cnt;  
    }
 
    cout<<"str: "<<strNumb<<endl;
    system("pause");
    return 0;
}
1
ka1n
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 10
13.12.2009, 16:33  [ТС] #3
бесконечно благодарен, пасиб дружищще) Теперь осталось тока самому разобраться и схему джексона нарисовать, наш препод изверг

Добавлено через 8 минут
Слушайте, а можно ли разбить этот алгоритм на функции?
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
13.12.2009, 17:14 #4
можно, но програмка сам видешь небольшая особого смысла нет.
можешь выделить как функцию трансформацию строки
0
ka1n
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 10
13.12.2009, 17:23  [ТС] #5
А можешь выложить как бы она выглядела юзая функцию. Смысл в том что нам задали сделать всё это двояко, через 1)стринг и 2)разбив на функии.
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
13.12.2009, 18:05 #6
эт если тебе надо сохранить первоначальную строку в начальном виде, а вообще можно передовать просто ссылку на строку и препарировать её как нужно. -> void ReplaceWord(const int number, string & sourse)

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
32
33
34
#include <iostream>
#include <string>
 
 
using namespace std;
 
string ReplaceWord(const int number, const string & sourse)
{
    string strNumb="", str=sourse;
    int index, cnt=1;
    while ((index=str.find_first_of(" "))!=string::npos)
    {
        if(cnt%number)  strNumb+=str.substr(0,index+1);
        else            strNumb+="- ";
 
        str=str.substr(index+1);                   
        ++cnt;  
    }
 
    return strNumb;
}
 
int main(void)
{
    string str;
    int number;
 
    cout << "Enter text: "; getline(cin, str);      str+=" ";
    cout << "Enter number: "; cin>>number;
 
    cout<<"str: "<<ReplaceWord(number,str)<<endl;
    system("pause");
    return 0;
}
1
ka1n
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 10
13.12.2009, 18:25  [ТС] #7
всё, пасиба)
0
13.12.2009, 18:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2009, 18:25
Привет! Вот еще темы с ответами:

удаление слов из строки - C++
помогите пожалуйста решить задачи. они не очень сложные (если на паскале), но я си++ плоховато знаю еще(( 1) удалить из введенной строки...

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

Найти ошибку: удаление повторяющихся слов из строки - C++
Написал программу, которая должна удалить из строки повторяющиеся слова. слова разделены только пробелом компилятор ни на что не...

Удаление из строки слов, длина которых меньше заданной - C++
Удалить из строки слова,длина которых меньше заданной,решите пожалуйста,за ранее спасибо)))


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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