プロが教える店舗&オフィスのセキュリティ対策術

現在、C++を使って、文字列の中から<>で囲まれた部分を抜き出して表示する、というプログラムを書きたいんですが、どうもうまくいきません。例として、

int main(void)
{
char html[] = "<abdc><kihddds><mokus>";
char *p;
int c;
c = '<';
p = strchr(html, c);
printf("%cは文字列の%d番目にあります。\n", c, p-html+1);
}

のような感じで最初の<と最初の>の場所を探すのはできるのですが、2個目以降を同じようにさがすことができません・・・。

上記の例でいうと、実行結果として
abdc
kihddds
mokus
とでるようなものをつくりたいのです。
良い方法がありましたら、どうぞご教授おねがいしますm(__)m

A 回答 (2件)

こんな感じかな、と。

(確認はしていません)


char *pstart;
char *pend;

pstart=strchr(html,'<');
if(pstart!=0)
pend=strchr(pstart+1,'>');
while(pstart!=0 && pend!=0){
printf(省略);
pstart=strchr(pend+1,'<');
if(pstart!=0)
pend=strchr(pstart+1,'>');
}
    • good
    • 0
この回答へのお礼

参考になりました。おかげで解決できました。ありがとうございました。

お礼日時:2009/12/08 22:30

>2個目以降を同じようにさがすことができません・・・。


のうまくいかないソースを開示してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。解決できましたのでソース開示はこの度は送らせて頂きます。次回質問することがあれば失敗する方のソースも開示して聞いた方が良い感じですね。いろいろと参考になります。ありがとうございました。

お礼日時:2009/12/08 22:33

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