ToreTrackdog Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 (endret) Jeg bruker funksjonen isspace(char) i <cctype> til å sjekke hvert element i en c++ streng. Når isspace(char) kommer til bokstavene æ,ø eller å, får jeg en assertion failure: Expression: (Unsigned)(c + 1) <= 256 assertion failure Altså, hvordan får jeg feks. følgende kode til å fungere i windows (jeg bruker visual studio 2005) CODE #include <iostream> #include <cctype> #include <string> using namespace std; int main() { string str = "hvordan går det med deg?"; //hvis man fjerner å'en går det greit. string::size_type size = str.size(); string::size_type spaces = 0; for(string::size_type i = 0; i < size; i++){ if(isspace(str)) spaces++; } cout << "Setningen har " << spaces << " mellomrom." << endl; return 0; } Tore Endret 25. oktober 2006 av ToreTrackdog Lenke til kommentar
kjetil7 Skrevet 25. oktober 2006 Del Skrevet 25. oktober 2006 Ser ut som at siden char er signed i VC++ så skaper dette problemer. Du kan caste den til en unsigned char: if(isspace((unsigned char)str[i])) Lenke til kommentar
ToreTrackdog Skrevet 26. oktober 2006 Forfatter Del Skrevet 26. oktober 2006 Takker. Det funka helt supert! :!: Lenke til kommentar
Giddion Skrevet 26. oktober 2006 Del Skrevet 26. oktober 2006 vs har en setting som gjør det samme config->c++->language->default char unsigned Lenke til kommentar
ToreTrackdog Skrevet 26. oktober 2006 Forfatter Del Skrevet 26. oktober 2006 Takk for tipset. Kjekt å vite. Lenke til kommentar
oladunk10 Skrevet 26. oktober 2006 Del Skrevet 26. oktober 2006 (endret) ..ikke at det er relevant for OP her, men tilsvarende for GCC/MinGW er -funsigned-char og -fsigned-char: http://gcc.gnu.org/onlinedocs/gcc/C-Dialec...ed_002dchar-116 ..tror ikke det er mange som søker før de spør, men kan jo hende.. :} Endret 26. oktober 2006 av oladunk10 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå