strtok()という関数。
以下のように使う。
int main() {
    char str[] = ":blue:red:yellow:black:";
    char *p = strtok(str, ":");
    while (p != NULL) {
        printf("[%s]\n", p);
        p = strtok(NULL, ":");
    }
    return 0;
}
  char *p = strtok(分割対象文字列のアドレス, 分割文字);のように使います。
但し、2回目以降は、
  char *p = strtok(NULL, 分割文字);
とします。
 NULLを指定することで、前に検索し終わった部分の次の文字列から検索を再開します。ちょっと変な仕様ですが、クラスをサポートしていないCの名残のような感じがします。
stringに対して同じことをしたい場合は、c_str()メンバ関数で一旦(const char *)に変換してから上記関数を使うといいです。
0 件のコメント:
コメントを投稿