Необходимо решить задачу 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;
}