[ optimus.prime @ 28.11.2008. 11:16 ] @
Pozdrav,

zasto ne mogu da promijenim vrijednost ovom stringu:


#include <iostream>
#include <string>

using namespace std;

int main()
{
string a;

string::size_type duzina;
cout<<"Unesi string iz kojeg zelis da izbacis zeljene karaktere:"<<endl;
getline(cin,a);
string b;
cout<<"Unesi koji su to karakteri koje izbacujes"<<endl;
cin>>b;
for(string::iterator i=b.begin();i!=b.end();i++)
{

for(string::iterator j=a.begin();j!=a.end();j++)
{
if(*j==*i)
*j=" "; // u ovoj liniji je problem, ne mogu da ga otklonim, kaze "invalid conversion from const char* to char
}
}
}

znaci :

ako sam ja unio:

string a: "ja sam student"
string b: "sa"
string a="j____m__tudent" //izbrisao je slovao s i a iz stringa i umjesto njih napisao prazna mjesta

[ X Files @ 28.11.2008. 17:17 ] @
Pod uslovom da je ostalo tacno (nisam proveravao), ovo sigurno nije:
*j=" "; // <--- dvostruki navodnici (bez obzira sto si stavio samo jedan znak) ne oznacavaju jedan char (radi se o char*), jer pored BLANKO karaktera ide i skriveni NULL na kraju koji je terminator stringa

*j=' '; // <--- ovo je jedan char, konkreno blanko
[ Eurora3D Team @ 29.11.2008. 00:01 ] @
A ako bas hoces da obrises slovo bolje ovako
Code:

for(string::iterator i=b.begin();i!=b.end();i++)
    {
        for(string::iterator j=a.begin();j!=a.end();j++)
        {
            if(*j==*i)
                a.erase(j);
           //     *j=' '; // u ovoj liniji je problem, ne mogu da ga otklonim, kaze "invalid conversion from const char* to char
        }
    }