Необходимо решить задачу c++ со строками и указателями

Я совсем нуб в C++, и мне надо решить задачу. Я пытался и мне частично удалось, но я не могу исправить некоторые ошибки, да и код получился кривой( Поэтому помогите пожалуйста, напишите программу, я не думаю, что такая задача должна занять у вас много времени. PS Только не пишите пожалуйста слишком сложно и заумно, я не думаю, что если мои преподаватели увидят что-то не моего уровня, то поверят в это. Задача: Дана строка из слов, разделенных пробелом. Из данной строки удалить все повторяющиеся слова. ( например: "a c c b" -> "a b") Выдать на экран исходную и сформированную строки. Пользуясь указателями, выдать на экран адреса удаленных слов (с и с в примере) в исходной строке. Мой код:

#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <string>
#include <iterator>

using namespace std;

int main()
{
    setlocale(LC_ALL, "Russian");
    char *c[50];
    string ma,is,ko,p,d,f,mas[50];
    int i, j, g, n,k,cc,m, t;
    p = " ";
    cout << "Введите исходную строку:" << endl;
    getline(cin, is);
    n = size(is);
    cc = 0;
    m = 0;
    if (is[n] != p[0]) {
        is = is + " ";
    }
    n = size(is);
    k = 0;
    t = 0;
    int ex, exx, l;
    exx = 0;
    l = 0;
    ex = 0;
    mas[0] = "dfd";
    cout << "Адреса удалённых слов:" << endl;
    for (i = 0; i <= n; i++) {
        if ((is[i]) != p[0]) {
            d = d + is[i];      }
        else {
            for (j = 0; j <= n; j++) {
                if ((is[j]) != p[0]) {
                    f = f + is[j];
                }
                else {
                    if (d != f) {
                        f.clear();
                    }
                    else {
                        c[cc] = &is[j];
                        cc = cc + 1;
                        k = k + 1;
                        f.clear();
                    }
                }
            } 
            if (k <= 1) {
                ko = ko + d + " ";
            }
            else {
                    if (t = 0) {
                        for (g = 0; g < cc; g++) {
                        cout << "Адрес 1 буквы слова '" << d << "' в исх. строке: " << c[g] << endl;
                        }
                        t++;
                    }
                    else {
                    l = sizeof(mas);
                    for (exx = 0; exx < l; exx++) {
                        ma = mas[exx];
                        int mm;
                        auto pi = size(ma);
                        auto po = size(d);
                        if (pi == po) {
                            for (mm = 0; mm <= pi; mm++) {
                                if (ma[mm] != d[mm]) {
                                    exx++;
                                }
                            }
                        }
                        else {
                            ex++;
                        }
                    }
                    if (ex = 0) {
                        for (g = 0; g < cc; g++) {
                            cout << "Адрес 1 буквы слова '" << d << "' в исх. строке: " << c[g] << endl;
                        }
                        ex = 0;
                    }
                    }
                    mas[m] =d;
                    m++;
            }
            cc = 0;
            k = 0;
            d.clear();
        }
    }
    cout << "Итоговая строка:" << endl;
    cout << ko << endl;
    return 0;
}

Ответы (0 шт):