Dodatkowe, niechciane znaki w tablicy char.
Ostatnio zmodyfikowano 2014-12-30 19:41
ktos-tam Temat założony przez niniejszego użytkownika |
Dodatkowe, niechciane znaki w tablicy char. » 2014-12-30 19:28:52 Krótkie pytanie - skąd biorą się te trzy ostatnie znaki? Uproszczony kod: std::string wiersz = "1234"; char wierszChar[ wiersz.size() ];
std::cout << "rozmiar: " << wiersz.size() << std::endl;
const char * wierszCChar; wierszCChar = wiersz.c_str();
std::cout << wierszCChar << std::endl;
short znakWiersza = 0; while( wierszCChar[ znakWiersza ] ) { wierszChar[ znakWiersza ] = wierszCChar[ znakWiersza ]; std::cout << wierszCChar[ znakWiersza ] << std::endl; znakWiersza++; }
std::cout << wierszChar << std::endl; Screen z konsoli: http://screenshooter.net/100300258/dqdkqpe |
|
1aam2am1 |
» 2014-12-30 19:33:35 1. Tak się nie tworzy dynamicznej tablicy. 2. cstring musi być zakończony NULL-em (0) 3. cstring jest wyświetlany aż do tego znaku |
|
ktos-tam Temat założony przez niniejszego użytkownika |
» 2014-12-30 19:41:18 Tablica nie miała być dynamiczna. Zrobiłem sobie dłuższą przerwę od C++ i zapomniało mi się o NULL'u. Dzięki.
//Edit: Jeszcze jedno małe pytanko. Jak dodać \0 na końcu?
//Edit: Dobra, wywaliłem wierszCChar i użyłem strcpy(). |
|
« 1 » |