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 » |