strtok()のためにcharを確保するには

解決


origi  2004-12-01 06:06:10  No: 55413

いま作っているプログラムで strtok() を
使っているんですが、strtok() は渡した変数自体を変えてしまいます。
なので、一度別の変数に元の変数を確保し、 strtok() に渡したんですがうまくいきません。
どうすればよいのか教えてください。

※strにはaaa, bbb, cccccc てな感じで入っています
int LoadingWord(const char* str)
{
  char* ptr, *Mem;
  char memStr[200];
  const char* token = ",";

  strcpy(memStr, str);
  Mem = memStr;
  ptr = strtok(memStr, token);
  ptr = strtok(NULL, token);
  ptr = strtok(NULL, token);
//こうすると const で宣言したにもかかわらず引数の str が変更されてしまう。


YuO  2004-12-01 06:38:57  No: 55414

・どのようにして調べたら
・どのような結果が得られたのですか?

例えば,strtokのあとにputs(str);としたら変化があったのですか?


origi  2004-12-01 06:56:21  No: 55415

説明足らずですみません。

自分はWinAPI を使っています。
それで、strtok() の後にMessageBox()をいれてstrの値を調べたところ、
別の変数に格納したmemStrをstrtok()に使っているんですが、
memStrと違う変数であるstr自体もmemStrと同じ値になってしまいました。
これは char* とかの使い方が間違っているということでしょうか?
どうかご教授お願いします。


origi  2004-12-01 07:04:47  No: 55416

できました。なんか少しミスっていたみたいです・・・。
YuOさん回答ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加