C言語関係掲示板

過去ログ

No.536.文字列を二つ目の","で分割

[戻る] [ホームページ]
No.4399

可変長の文字列を分割するには?
投稿者---えんぞー(2003/01/16 13:13:21)


はじめまして、よろしくお願い致します。
C言語は入門書を何とか理解できる程度で、ちょっと応用になると
パニックをおこしそうになります。

","で区切られた可変の文字列を以下のように2つに分割したいの
ですが(2番目の","で区切る)、良い方法が浮かんでこなくて
困っています。


AAA,QQQQQ,BBBB,RRRR ⇒ AAA,QQQQQ と BBBB,RRRR
CC,SSSS,DDD,TTTTTT  ⇒ CC,SSSS   と DDD,TTTTTT
.
.
.


","で文字列をすべて区切って1番目と2番目、3番目と4番目を
くっつけると考えたのですが、","の前後の文字列長が可変なので
うまく出来ないのではと思ったのですが。

それとも、他に何か良いアイデアがありましたら、ご教授願います。



No.4438

Re:可変長の文字列を分割するには?
投稿者---かずま(2003/01/17 21:27:36)


> ","で区切られた可変の文字列を以下のように2つに分割したいの
> ですが(2番目の","で区切る)、良い方法が浮かんでこなくて
> 困っています。

分割した後、それを表示するだけでよければ、こんなふうに書けます。
#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[] = "AAA,QQQQQ,BBBB,RRRR";
    char *p = strchr(strchr(s, ',') + 1, ',');

    printf("%.*s\n%s\n", p - s, s, p + 1);
    return 0;
}


No.4508

Re:可変長の文字列を分割するには?
投稿者---えんぞー(2003/01/21 21:56:17)


返信が遅くなりましたが、かずまさんありがとうございます。
自分なりに理解して解決できました。
今度は自分が掲示板に対して、良いアドバイスが出来るように
もっと勉強したいと思います。

ありがとうございました。