全くやっかいだ.
#include <stdio.h> #include <stdlib.h> //#include <wchar.h> #include <locale.h> #include <string.h> #define DELIMITER L"/ ,、。" /* 区切り文字 */
int main(int argc, char **argv) { setlocale(LC_ALL, "");//""は空のママにすること wchar_t wbuf[] = L"それは面白い。これも面白い。でも,それは面白 くない."; char str[100]; wchar_t * node; wchar_t *endptr = NULL; node = wcstok(wbuf, DELIMITER,&endptr); // node = wcstok(wbuf, DELIMITER) はだめ while(node != NULL){ //fputs("node = ", stdout); fputws(node, stdout); fputs("\n", stdout);こういう手もある wcstombs(str,node, 100); // wctomb は一文字を変換 // printf("str = %.1s\n", str);printf("str = %.*s\n", str); printf("str = %s\n", str); node = wcstok(NULL, DELIMITER,&endptr ); //node = strtok(NULL, ","); } return 0;
}