アプリ版:「スタンプのみでお礼する」機能のリリースについて

char *str = ./aa...a/b..bb/cc..c/d...dd.txt";
の aa...a , b..bb , cc..c , d...dd を取り出したいのですが
sscanf(str,"./%s/%s/%s/%s.txt",a,b,c,d);
とすると,aだけにすべての文字列が入ってしまい,他のb,c,dには何も入りません.
つまり.a = "aa...a/b..bb/cc..c/d...dd.txt" となります.

a,b,c,dはいずれも char a[512],b[512],c[512],d[512] となっております.

取り出すうまい方法がありましたら教えてください.

A 回答 (2件)

#include <stdio.h>


int main(void)
{
char a[512],b[512],c[512],d[512];
char *str = "./aa...a/b..bb/cc..c/d...dd.txt";

sscanf(str, "./%511[^/]/%511[^/]/%511[^/]/%511[^/]", a, b, c, d);

printf("a=:%s:\nb=:%s:\nc=:%s:\nd=:%s:\n", a, b, c, d);

return(0);
}
    • good
    • 0
この回答へのお礼

ありがとうございます.
とても参考になりました.

お礼日時:2005/11/06 16:00
    • good
    • 0
この回答へのお礼

前の質問であったのですね.気がつきませんでした.
これからはもっと調べてから質問しようと思います.

お礼日時:2005/11/06 16:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!