※ ChatGPTを利用し、要約された質問です(原文:文字列を特定の全角文字で区切る方法)
C言語で文字列を特定の全角文字で区切る方法
このQ&Aのポイント
C言語で文字列を特定の全角文字で区切る方法について教えてください
wchar.hを使用して文字列を区切る操作をしたいのですが、うまくいきません
現在のコードでは意図しない文字で区切られてしまいます
文字列を特定の全角文字で区切る方法
C言語で、文字列を特定の全角文字で区切って画面に出力する操作をしたいのですが、うまくいきません。
#include <wchar.h>
int main(void)
{
wchar_t name[] = L"シーゲンゴ・タロウ";
wchar_t *p;
wchar_t delim[] = L"・";
wprintf(L"%ws\n", name);
p = wcstok(name, delim);
putws(p);
while (p!=NULL) {
p = wcstok(NULL, delim);
if (p!=NULL) {
putws(p);
}
}
}
上記のコードを実行すると、出力が
シーゲンゴ・タロウ
シ
[ゲンゴ
タロ・
となってしまい、何故か"ー"と"ウ"まで反応して別の文字になります。
今までwchar.hを使ったことが無かったので、やり方が不味い所を教えて下さい。
よろしくお願いします。
お礼
回答ありがとうございます。 1行目について色々調べてみた所、ロケールの設定を行っていなかった事が原因だと分かりました。 おかげさまで上記の例も"シーゲンゴ"と"タロウ"できちんと二つに分ける事ができました。