トップ
新規
一覧
単語検索
最終更新
ヘルプ
ログイン
アールメカブ
wcstok_wcstombs_etc
をテンプレートにして作成
開始行:
[[Programming_C]]
全くやっかいだ.setlocale(LC_ALL, ""); を空で呼び出す理由...
>
locale が NULL ならば、現在のロケールを問い合わせるのみで...
<
>
main プログラムの起動時には、互換性のある "C" ロケールが...
<
setlocale(LC_ALL, "");
>
を呼び出し、ロケール依存の情報には localeconv(3) の返り値...
<
と書いてあるではないか.
#include <stdio.h>
#include <stdlib.h>
//#include <wchar.h>//stdio.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){
wcstombs(str,node, 100); // wctomb は一文字を変換
printf("str = %s\n", str);
node = wcstok(NULL, DELIMITER,&endptr );
//node = strtok(NULL, ",");はだめ
}
return 0;
}
wcstombsは余地がある場合、マルチバイト文字列はヌル文字で...
wcstombsなどを使わない他の変換方法としてこういう手もある.
fputs("node = ", stdout); fputws(node, stdout); fputs("\n...
printf("str = %.1s\n", str);
printf("str = %.*s\n", str);
終了行:
[[Programming_C]]
全くやっかいだ.setlocale(LC_ALL, ""); を空で呼び出す理由...
>
locale が NULL ならば、現在のロケールを問い合わせるのみで...
<
>
main プログラムの起動時には、互換性のある "C" ロケールが...
<
setlocale(LC_ALL, "");
>
を呼び出し、ロケール依存の情報には localeconv(3) の返り値...
<
と書いてあるではないか.
#include <stdio.h>
#include <stdlib.h>
//#include <wchar.h>//stdio.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){
wcstombs(str,node, 100); // wctomb は一文字を変換
printf("str = %s\n", str);
node = wcstok(NULL, DELIMITER,&endptr );
//node = strtok(NULL, ",");はだめ
}
return 0;
}
wcstombsは余地がある場合、マルチバイト文字列はヌル文字で...
wcstombsなどを使わない他の変換方法としてこういう手もある.
fputs("node = ", stdout); fputws(node, stdout); fputs("\n...
printf("str = %.1s\n", str);
printf("str = %.*s\n", str);
ページ名: