C 文字列が与えられた場合: 文字列内の次のトークンを取得する関数と、グローバル変数を使用せずに次のトークンをピークしてそれを返す関数を作成するにはどうすればよいでしょうか?
私がやろうとしているのは、文字列を保持する静的変数を持つことです。呼び出されると、ポインターがインクリメントされ、静的変数がリセットされ、取得されたトークンがスローされます。問題は、最初の呼び出し (実際に文字列を格納するとき) と、それを取得するときの他の呼び出しをどのように区別できるでしょうか?
これについて何か考えはありますか?
編集: これが私が今持っている「機能する」ものですが、実際に機能する必要があり、ポインターがnullであるという単なる偶然ではないことを確認したい:
char next_token(char *line) {
static char *p;
if (p == NULL)
p = line;
else {
char next_token = p[0];
p++;
return next_token;
}
}