次のことを考えると:
char delimiters1[] = {' ' , '&' , '<' , '>'};
char delimiters2[] = " &<>";
Cとで関数strpbrkを使用するdelimiters1とdelimiters2、結果は同じになりますか?
20の入力のようなもので両方をテストしましたが、両方で同じ出力が得られました。
私が間違っている ?
ありがとう 。
char delimiters1[] = {' ' , '&' , '<' , '>'};
する必要があります:
char delimiters1[] = {' ' , '&' , '<' , '>', 0};
数回動作する場合があります。ただし、スティングはnullで終了する必要があります。それ以外の場合、strpbrkは検索対象の文字の終わりをどのように認識しますか?
これはstrbrk()のスニペットです:
while (*s1)
{
for (c = s2; *c; c++)
{
if (*s1 == *c)
break;
}
if (*c)
break;
s1++;
}
ここで、cは文字セットへのポインタです。はっきりとわかるよう*cに、プログラムが正しく機能するには、ある時点でnullになるはずです。