いま作っているプログラムで 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 が変更されてしまう。
・どのようにして調べたら
・どのような結果が得られたのですか?
例えば,strtokのあとにputs(str);としたら変化があったのですか?
説明足らずですみません。
自分はWinAPI を使っています。
それで、strtok() の後にMessageBox()をいれてstrの値を調べたところ、
別の変数に格納したmemStrをstrtok()に使っているんですが、
memStrと違う変数であるstr自体もmemStrと同じ値になってしまいました。
これは char* とかの使い方が間違っているということでしょうか?
どうかご教授お願いします。
できました。なんか少しミスっていたみたいです・・・。
YuOさん回答ありがとうございました。
ツイート | ![]() |