5

私はいくつかのC構造を文字列にシリアライズし、それをデシリアライズしていstrtok()ます. しかし残念ながら、strtok()空のフィールド (1:2::4 など) は検出されません。

代替機能はありますか?

4

3 に答える 3

11

Linux にはstrsepがあります。

strsep() 関数は strtok() の代替として導入されました。後者は空のフィールドを処理できないためです。ただし、strtok() は C89/C99 に準拠しているため、移植性が高くなります。

于 2010-03-04T08:28:08.903 に答える
8

strchr(1 つの区切り文字のみの場合) またはstrcspn(可能な区切り文字のグループの場合) を使用して、次の区切り文字を検索し、トークンを処理してから、1 文字進めることができます。これをループで実行すると、必要なものが手に入ります。

于 2010-03-04T08:26:41.997 に答える