ďťż

Ł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
  •