char
ポインタを使用して配列をトークン化するプログラムを作成しました。プログラムは、区切り文字としてスペースを使用するだけで済みました。提出して完全なクレジットを取得しましたが、提出した後、このプログラムは区切り文字がスペースである場合にのみ機能することに気付きました。
私の質問は、このプログラムを任意の区切り文字で動作させるにはどうすればよいですか?
以下に示す関数は、char配列内の次の単語へのポインターを返します。これは、区切り文字で機能するように変更する必要があると私が信じているものです。
ありがとう!
コード:
char* StringTokenizer::Next(void) {
pNextWord = pStart;
if (*pStart == '\0') { return NULL; }
while (*pStart != delim) {
pStart++;
}
if (*pStart == '\0') { return NULL; }
*pStart = '\0';
pStart++;
return pNextWord;
}
の印刷ループmain()
:
while ((nextWord = tk.Next()) != NULL) {
cout << nextWord << endl;
}