重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

文字列を特定の全角文字で区切る方法
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を使ったことが無かったので、やり方が不味い所を教えて下さい。
よろしくお願いします。

A 回答 (1件)

UNICODEなどのワイド文字用のマクロ定義がなされていないのでは?



開発環境や実行環境の情報を明示したほうがいいかもしれませんよ
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
1行目について色々調べてみた所、ロケールの設定を行っていなかった事が原因だと分かりました。
おかげさまで上記の例も"シーゲンゴ"と"タロウ"できちんと二つに分ける事ができました。

お礼日時:2010/08/31 22:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!