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

Удалить повторяющиеся слова в строке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Напечатать треугольник Паскаля — таблицу биномиальных коэффициентов http://www.cyberforum.ru/cpp-beginners/thread117624.html
дано целое неотрицательное число K. Напечатать треугольник Паскаля - таблицу биномиальных коэффициентов (C из m по n) для всех возможных целых значений m и n(0<=m<=n<=K)
C++ Програма генерирующая массив Написать программу на языках С и , которая генерирует массив, содержащий 40 целых случайных значений из заданного набора (при выводе элементов массива на экран располагает значения в 5 столбцов). Диапазон значений и количество элементов массива задать как символьные константы. Набор значений: 10, 20, 30, 40, 50. Помогите с масивом на языке "С". Буду крайне благодарен. http://www.cyberforum.ru/cpp-beginners/thread117620.html
Перезагрузить функции C++
Задание Перезагрузить функции для разных типов входных данных, или создать шаблоны функций, или переопределить операции для отмеченных пользователем типов (новые типы задавать в виде структур). Перезагрузить операции “<<”, “>>” для вводу и вывода транспонированных целых и действительных матриц размерностью nxm.
Определить количество классов эквивалентных столбцов данной прямоугольной матрицы. Столбцы считать эквивалентными, если равны множества их элементов. C++
подскажите пожалуйста!!!на СИ Определить количество классов эквивалентных столбцов данной прямоугольной матрицы. Столбцы считать эквивалентными, если равны множества их элементов.
C++ Найти в массиве элемент с наименьшим значением http://www.cyberforum.ru/cpp-beginners/thread117555.html
Помогите пожалуйста решить задачи... 1) Сформировать массив заданного размера из целых случайных чисел. Найти в полученном массиве элемент с наименьшим значением. Сформировать новый массив из всех чисел, которые попали в промежуток от наименьшего значения до конца массива. Оба массива вывести на экран. 2) Сформировать массив заданного размера из целых случайных чисел. Найти в полученном...
C++ Проявления Паскаля в Cpp Видел несколько раз картину имитации Паскаля на Cpp. Вопрос зачем это нужно, есть ли в этом замысел, может это зов природы. Представляю вашему внимаю код сортировки вставкой, с имитированным синтаксисом: #include <iostream.h> #define begin { #define end } int main() подробнее

Показать сообщение отдельно
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
17.04.2010, 11:55     Удалить повторяющиеся слова в строке
Здравствуйте!
Как удалить из строки типа char, введенной с помощью cin.getline(buf, 80), одинаковые слова (слова могут быть разделены одним или несколькоми пробелами и знаками табуляции)? В полученной строке слова должны быть разделены только одним пробелом. Можно записать неповторяющиеся слова в новую строку. Но я что-то не могу понять как это сдалать((. Помогите, кто знает

Добавлено через 20 часов 0 минут
Ответ:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
const int SIZE =80;
 
char *pr2 (char *in);
char *pr1 (char *in);
char *copy(char *, char *, int);
int opr (char *a, char *b, int, int);
void ud(char*, char*);
 
void main()
{
    char buf[SIZE],buf2[SIZE], buf3[SIZE]={' '}, outbuf[SIZE]={' '};
 
    while(cout<<"Vvedite 1 stroky: ",
    cin.getline(buf, SIZE))
    {   
        ud(buf, buf3);
 
        cout<<"Rezultat: "<<buf3;
        cout<<endl<<endl;
    }
}
void ud (char *s, char *b)
{
    char *a;
    char *p=b, *z=b; 
    int u=0;
 
    a=pr1(s);
    s=pr2(a);
    b=copy(a,b,s-a);
    
    char *t=b;
 
    while (*(a=pr1(s)))
    {
        s=pr2(a);
        t=z;
        while (*(p=pr1(t)))
        {
            t=pr2(p);
            u=opr(a,p, s-a, t-p);
 
            if(u==0)
                continue;
            else
                break;
        }
        if (u==0)
            b=copy(a,b,s-a);    
    }
}
int opr (char *t, char *r, int len, int len2)
{
    int k=0;
    if (len!=len2)
        return 0;
    else
    {
         for (int j=0; j<len; j++)
         {
             if (*t++==*r++)
                k=1;
            else 
            {
                k=0;
                break;
            }
         }
    return k;
     }      
}
char *pr1(char *in)
{ 
    while (*in&&(*in==' ')||(*in=='\t'))
        in++;
    return in;
}
char *pr2 (char *in)
{
    while (*in&&*in!=' '&&*in!='\t')
        in++;
    return in;
}
char *copy(char * from, char *to, int len)
{
    for (int j=0; (j<len)&&(*to++=*from++); j++)
        ;
    
    *to++=' ';
    *to='\0';
 
    return to;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru