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

Удаление слова введенного пользователем - C++

Восстановить пароль Регистрация
 
xEtr1k
 Аватар для xEtr1k
9 / 9 / 3
Регистрация: 09.08.2012
Сообщений: 35
09.08.2012, 08:16     Удаление слова введенного пользователем #1
Здраствуйте.Я новичек в программирование так что нужна помощь.
Вводится строка, позьзователь вводит слово которое нужно удалить,вывести полученную строку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2012, 08:16     Удаление слова введенного пользователем
Посмотрите здесь:

C++ Умножение введенного пользователем числа на 3
При вводе слова на русском языке переменная в программе принимает значение латиницы введенного слова C++
C++ Как можно вывести определенный символ и/или число из введенного пользователем текста?
C++ Удаление из строки символа, введенного пользователем
Написать рекурсивную функцию для вычисления суммы цифр натурального числа, введенного пользователем C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
09.08.2012, 08:52     Удаление слова введенного пользователем #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
28
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
    static char str1[256] = "C++ is a standard for developing cross-platform applications";
    static char str2[256] = "cross-platform";
 
    printf("string = %s\nword = %s\n",str1,str2);
 
    char* sw = NULL;
    if ((sw = strstr(str1,str2)) != NULL)
    {
        while (!isspace(*sw))
        {
            for (int i = sw - str1; str1[i] != '\0'; i++)
                str1[i] = str1[i+1];
        }
    }
 
    printf("result = %s\n",str1);
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/5e74b9...767748a875957a
-=ЮрА=-
Заблокирован
Автор FAQ
09.08.2012, 09:36     Удаление слова введенного пользователем #3
C++ аналог
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
    string text = "C++ is a standard for developing cross-platform applications";
    string move = "cross-platform";
    cout<<"Input text     : \n"<<text<<endl;
    cout<<"String to move : \n"<<move<<endl;
    for
    (
        int pos  = text.find(move,0); 
            pos != string::npos;
            pos = text.find(move,0)
    )
        text.erase(pos,move.length());//ÂûòèðГ*ГҐГ¬ ñòðîêó
    cout<<"Output text    :\n"<<text<<endl;
    return 0;
}
http://liveworkspace.org/code/83d2c6...e8f0cfe7b84bc3
Миниатюры
Удаление слова введенного пользователем  
xEtr1k
 Аватар для xEtr1k
9 / 9 / 3
Регистрация: 09.08.2012
Сообщений: 35
09.08.2012, 10:34  [ТС]     Удаление слова введенного пользователем #4
zitxbit,извините,а не подскажите как работает функция isspace
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
09.08.2012, 11:08     Удаление слова введенного пользователем #5
C++
1
bool isspace(char c) { return c == ' ' ? 1 : 0; }
xEtr1k
 Аватар для xEtr1k
9 / 9 / 3
Регистрация: 09.08.2012
Сообщений: 35
19.08.2012, 08:29  [ТС]     Удаление слова введенного пользователем #6
zitxbit, ещё раз извините , могли вы объяснить каким значением будет проинициализирована переменная i = sw - str1; // в частности чему равно str1
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
19.08.2012, 09:07     Удаление слова введенного пользователем #7
i - индекс элемента массива на который указывает указатель sw. Разность указателей равна количеству элементов типа char начиная с начала строки str1, т.е. индекс (позиция) элемента на который указывает указатель sw в массиве.
xEtr1k
 Аватар для xEtr1k
9 / 9 / 3
Регистрация: 09.08.2012
Сообщений: 35
19.08.2012, 09:30  [ТС]     Удаление слова введенного пользователем #8
а какому значению собственно сами указатели sw и str1 равны? sw я так понимаю это будет код буквы 'c' в cross-platform , или я не так понял?
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
19.08.2012, 10:00     Удаление слова введенного пользователем #9
Да вы правильно поняли.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
19.08.2012, 10:18     Удаление слова введенного пользователем #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <regex>
 
using namespace std;
 
int main()
{
    string str = "She is a teacher in institute";
    string word_to_replace = "teacher";
    regex regex("\\b" + word_to_replace + "\\b");
    str = regex_replace(str, regex, string(""), regex_constants::format_default);
    cout << str << endl;
    std::cin.get();
}
В Visual Studio 2010 нормально работает. В остальных не знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2012, 10:28     Удаление слова введенного пользователем
Еще ссылки по теме:

Найти сумму цифр вещественного числа, введенного пользователем C++
C++ Сумма цифр введенного пользователем числа
C++ Вывод всех цифр введенного пользователем числа через пробел в обратном порядке

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

Или воспользуйтесь поиском по форуму:
nameless
Эксперт C++
 Аватар для nameless
289 / 288 / 14
Регистрация: 16.06.2009
Сообщений: 486
19.08.2012, 10:28     Удаление слова введенного пользователем #11


C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
#include <boost/algorithm/string/replace.hpp>
#include <boost/algorithm/string/erase.hpp>
 
int main() {
   std::string text = "C++ is a standard for developing cross-platform applications";
   std::cout << boost::algorithm::erase_all_copy(text, "cross-platform") << std::endl;
   std::cout << boost::algorithm::replace_all_copy(text, "cross-platform", "") << std::endl;
}
http://liveworkspace.org/code/cd6da9...8270701b1e32f4
Yandex
Объявления
19.08.2012, 10:28     Удаление слова введенного пользователем
Ответ Создать тему
Опции темы

Текущее время: 22:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru