Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

funkcja strtok

Ostatnio zmodyfikowano 2016-01-10 20:14
Autor Wiadomość
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?

C/C++
char * zdanie = new char[ fragment.size() ]; //fragment - to, co rozdzielam
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, " " );
}
P-143333
Monika90
» 2016-01-10 20:05:50
C/C++
char * zdanie = new char[ fragment.size() ]; //fragment - to, co rozdzielam
za mało miejsca w tablicy, bo zapomniałeś o zerze kończącym łańcuch

C/C++
strcpy( zdanie, fragment.c_str() );
i teraz strcpy zapisuje dane poza zakresem tablicy
P-143339
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
P-143343
Monika90
» 2016-01-10 20:14:10
C/C++
wsk_tokena != "\n"
to porównuje adresy, jeżeli chcesz sprawdzić czy wsk_tokena wskazuje na znak \n, to zrób to tak
C/C++
* wsk_tokena != '\n'
P-143344
« 1 »
  Strona 1 z 1