私はいくつかのC構造を文字列にシリアライズし、それをデシリアライズしていstrtok()
ます. しかし残念ながら、strtok()
空のフィールド (1:2::4 など) は検出されません。
代替機能はありますか?
Linux にはstrsepがあります。
strsep() 関数は strtok() の代替として導入されました。後者は空のフィールドを処理できないためです。ただし、strtok() は C89/C99 に準拠しているため、移植性が高くなります。
strchr
(1 つの区切り文字のみの場合) またはstrcspn
(可能な区切り文字のグループの場合) を使用して、次の区切り文字を検索し、トークンを処理してから、1 文字進めることができます。これをループで実行すると、必要なものが手に入ります。