Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Удаление повторяющихся слов из строки


Автор: VivO2714 23.12.2009, 21:12
Здравствуйте. Помогите пожалуйста реализовать задачу: Дана строка. Группа символов разделленая одним или несколькими пробелами считается словом. Необходимо удалить из строки все повторные вхождения слов (пробелы не должны удаляться  из строки). Похожие темы были,но полностью завершенных я не нашел и поэтому создал новую тему. И если можно,то реализовать всё это без использования библиотеки string.h (это не обязательно).

Автор: bsa 23.12.2009, 23:17
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Dov 26.12.2009, 03:50
Код
#define LEN 80

int main()
{
    char   str[LEN]  = "  hello world hello world hello world hello!!! ";
    char   buf[LEN]  = "";
    char   word[LEN] = "";
    char * end       = str;
    char * beg;       
    char * pBuf      = buf;

    while(*end)
    {
        while(*end && !isalnum(*end))
            *pBuf++ = *end++;

        beg = end;
        while(*end && isalnum(*end))
            end++;

        strncpy(word, beg, end - beg);
        word[end - beg] = '\0';

        if(!strstr(buf, word))
            while(beg < end)
                *pBuf++ = *beg++;
    }

    cout << str << endl;
    cout << buf << endl;

    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)