#include /* iswalnum */ #include /* using setlocale */ #include /* using mbtowc */ int main(int argc, char** argv) { char* word; wchar_t character; int consumed; if(argc < 2) return 1; /* enable system locale */ setlocale(LC_ALL,""); /* decode one character at a time */ for(word = argv[1]; (consumed = mbtowc(&character, word, MB_CUR_MAX)) > 0; word += consumed) { if(! iswalnum(character)) return 1; } /* mbtowc indicated encoding error */ if(consumed < 0) return 1; return 0; }