Ĺadny brzuch
to co w temacie, tak to zrobić?
Probowalem tak:
string ja = "bartek"; char *b = ja.c_str(); cout<<b;
Niestety kompilator zwracal blad wiec zrobilem tak i dziala:
string ja = "bartek"; char *b = const_cast<char * > (ja.c_str()); cout<<b;
Nie wiem czy jest to sposob powszechnie akceptowany, ale dziala.
String to to samo co char*. Po prostu jest to string, a przy deklaracji używa się char*.
String to to samo co char*. Po prostu jest to string, a przy deklaracji używa się char*.
Probowalem tak:
string ja = "bartek"; char *b = ja.c_str(); cout<<b;
Niestety kompilator zwracal blad wiec zrobilem tak i dziala:
string ja = "bartek"; char *b = const_cast<char * > (ja.c_str()); cout<<b;
Nie wiem czy jest to sposob powszechnie akceptowany, ale dziala.
Qwas: funkcja c_str() klasy std::string zwraca nie char*, a const char*, dlatego nie powinien być tu użyty const_cast, tylko wskaźnik powinien być typu const char*. A, i możesz od razu napisać std::cout << ja.c_str();
Zdaje sobie sprawe z tego, iz zwraca ona typ const char*. Jednak w moim przekonaniu const_cast sluzy wlasnie do pozbywania sie tego const. Wiem, ze moglem napisac const char* b jednak mark_ pytal o char*, a nie const char*.
Dlatego najważniejszą kwestią w tym temacie jest to, żeby pisać const char*, a nie char*. To const nie jest tam dla zabawy, tylko żeby zapewnić nietykalność napisu. Jakby c_str() zwracał char*, to mógłbyś napisać delete[] napis.c_str(), i perfekcyjnie zepsuć program. Podsumowując: Mark_, jak już musisz używać konstrukcji z C, to tam gdzie możesz pisz const char* zamiast char* - dla własnego bezpieczeństwa ;)
string ja = "bartek"; Â Â char *b = const_cast<char * > (ja.c_str()); Â Â cout<<b;
ten sposób jako jedyny mi zadzialal.
jak to dziala, pierwszy raz spotykam się z taką konstrukcją
jak to dziala, pierwszy raz spotykam się z taką konstrukcją
Funkcja c_str() zwraca const char* Ty chciales jednak aby bylo to char* wiec zostalo wykonane rzutowanie (za pomoca const_cast) na typ char*. Nie widze co tutaj jeszcze mozna tlumaczyc innego.Pozatym przeczytaj post wyzej TeMPOraLa, bo madrze chlopak pisze.
jeszcze jedno pytanie bede mial
int x = 10;
string lancuch;
i jak wcisnac to 10 w tego stringa?
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Probowalem tak:
string ja = "bartek"; char *b = ja.c_str(); cout<<b;
Niestety kompilator zwracal blad wiec zrobilem tak i dziala:
string ja = "bartek"; char *b = const_cast<char * > (ja.c_str()); cout<<b;
Nie wiem czy jest to sposob powszechnie akceptowany, ale dziala.
String to to samo co char*. Po prostu jest to string, a przy deklaracji używa się char*.
String to to samo co char*. Po prostu jest to string, a przy deklaracji używa się char*.

Probowalem tak:
string ja = "bartek"; char *b = ja.c_str(); cout<<b;
Niestety kompilator zwracal blad wiec zrobilem tak i dziala:
string ja = "bartek"; char *b = const_cast<char * > (ja.c_str()); cout<<b;
Nie wiem czy jest to sposob powszechnie akceptowany, ale dziala.

Qwas: funkcja c_str() klasy std::string zwraca nie char*, a const char*, dlatego nie powinien być tu użyty const_cast, tylko wskaźnik powinien być typu const char*. A, i możesz od razu napisać std::cout << ja.c_str();
Zdaje sobie sprawe z tego, iz zwraca ona typ const char*. Jednak w moim przekonaniu const_cast sluzy wlasnie do pozbywania sie tego const. Wiem, ze moglem napisac const char* b jednak mark_ pytal o char*, a nie const char*.
Dlatego najważniejszą kwestią w tym temacie jest to, żeby pisać const char*, a nie char*. To const nie jest tam dla zabawy, tylko żeby zapewnić nietykalność napisu. Jakby c_str() zwracał char*, to mógłbyś napisać delete[] napis.c_str(), i perfekcyjnie zepsuć program. Podsumowując: Mark_, jak już musisz używać konstrukcji z C, to tam gdzie możesz pisz const char* zamiast char* - dla własnego bezpieczeństwa ;)
string ja = "bartek"; Â Â char *b = const_cast<char * > (ja.c_str()); Â Â cout<<b;
ten sposób jako jedyny mi zadzialal.
jak to dziala, pierwszy raz spotykam się z taką konstrukcją
jak to dziala, pierwszy raz spotykam się z taką konstrukcją
Funkcja c_str() zwraca const char* Ty chciales jednak aby bylo to char* wiec zostalo wykonane rzutowanie (za pomoca const_cast) na typ char*. Nie widze co tutaj jeszcze mozna tlumaczyc innego.Pozatym przeczytaj post wyzej TeMPOraLa, bo madrze chlopak pisze.
jeszcze jedno pytanie bede mial
int x = 10;
string lancuch;
i jak wcisnac to 10 w tego stringa?