#include <wctype.h>
/* iswalnum */
#include <locale.h>
/* using setlocale */
#include <stdlib.h>
/* 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;
}
Comments