funkcja strtok
Ostatnio zmodyfikowano 2016-01-10 20:14
go_no Temat założony przez niniejszego użytkownika |
funkcja strtok » 2016-01-10 19:23:50 Rozdzielam funkcją strtok jakis ciag slow. Nastepnie, jeśli zostanie rodzielony znak nowej linii, chce aby nie zostal wyswietlany, jednak niestety to nie działa, gdzie tkwi moj blad? char * zdanie = new char[ fragment.size() ]; strcpy( zdanie, fragment.c_str() );
char * wsk_tokena; wsk_tokena = strtok( zdanie, " " );
while( wsk_tokena != NULL ) { if( wsk_tokena != "\n" ) { cout << wsk_tokena; } wsk_tokena = strtok( NULL, " " ); }
|
|
Monika90 |
» 2016-01-10 20:05:50 char * zdanie = new char[ fragment.size() ];
za mało miejsca w tablicy, bo zapomniałeś o zerze kończącym łańcuch strcpy( zdanie, fragment.c_str() );
i teraz strcpy zapisuje dane poza zakresem tablicy |
|
go_no Temat założony przez niniejszego użytkownika |
» 2016-01-10 20:10:27 char * zdanie = new char[ fragment.size() + 1 ]; zmienilem, jednak dalej jeśli rozdzieliło mi znak końca linii, to jest on wyświetlany |
|
Monika90 |
» 2016-01-10 20:14:10 to porównuje adresy, jeżeli chcesz sprawdzić czy wsk_tokena wskazuje na znak \n, to zrób to tak |
|
« 1 » |