1. C言語 - トークン取得 strok strsep - 概要

 
1.1 概要
1.2 使う場面

1.1 概要

 strok、strsep は、文字列をトークンの列に分割します。  わたしのイメージでは perl5 の split に似た動作をします。  perl では、一発でいきなりリストできるところを、分割した文字列を一回一回取得しなければならないところが C言語の悲しさです。  ほぼ同じ機能を持つ strok、strok_r がありますが。  strtok はスレッドセーフではないので使わない方がよいかと思われます。  FreeBSD の strok_r のマニュアルで「このインタフェースは strsep(3) によって置き換えられました」と書いてあります。  なので、strsep の方がよいのかなと思うと・・・。  GNU のマニュアルには「strsep() 関数は、 strtok(3) 関数が空のフィールドを 扱えないために、その代替品として導入された。 しかしながら、 strtok(3) 関数は C89/C99 に準拠しており、より移植性がある。」と書いてあり、どちらを使うべきか迷うところです。  strsep はスレッドセーフです。

1.2 使う場面

 使う場面。  わたしが実際に使ったのは、csv ファイルの読込の場面でした。