Odpowiedzi

Najlepsza Odpowiedź!
2010-02-21T22:38:44+01:00
#include <cstdlib>
#include <iostream>

using namespace std;


int main(int argc, char *argv[])
{
//napis wejsciowy
string napis;
//napis wynikowy
string wynik;

//pobranie napisu
cin>>napis;

//poczatkowo napis wynikowy jest pusty
wynik="";

//poczatkowo ostatnio sprawdzonym znakiem jest znak pusty
char ostatni = '\0';

//przechodzimy przez wszystkie znaki pobranego napisu
for(int i=0; i<napis.length(); i++)
{
//jezeli poprzedni znak jest inny niz aktualny
if(ostatni != napis[i])
{
//to dodaj go do wyniku
wynik += napis[i];
//i zapamietaj sprawdzony znak jako ostatnio sprawdzony
ostatni = napis[i];
}

}

//wyswietl wynik
cout<<wynik<<endl;


system("PAUSE");
return 0;
}
2010-02-21T23:34:16+01:00
Po co takie zagmatwane rozwiązanie, wystarczyło tak:
(Program w C++)

#include <iostream>
using namespace std;

int main()
{
string a;
getline(cin,a); //wczytaj całą linię z tekstem
int p=a.length(); //długość stringa
cout<<a[0]; //wypisz 1 literę ze stringa
for (int i=1; i<p; i++)
{
if (a[i]!=a[i-1]) cout<<a[i]; /*sprawdzenie, czy znak poprzedni i aktualny są różne, jeżeli tak, to wypisz go.*/
}
cout<<endl<<endl;
system("PAUSE");
return 0;
}


Prosto, łatwo:)
Pozdr.
DJ DareX