1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   ショッピングモール


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5534

ソースをある文字で検索したときに、多すぎるprintfの結果
投稿者---taka(2006/03/04 11:36:49)


//*lpszSrcはwinlnetライブラリを用いて取得したhtmlソースを格納
char *c = "A HREF=";
char *e = "/";
char *q,*p;
while(*lpszSrc != '\0'){
if(p = strstr(lpszSrc,c)){
if(q = strstr(p + strlen(c),e)){
printf("%-.*s\n", q - p - strlen(c), p + strlen(c));
}
}
lpszSrc++;
}
よろしくお願いします。
winXP VC++2003.netです。
コンパイルエラー、警告は出ていません。
具体的にどのような症状が出ているのかというと検索しているソースの中にある数だけA HREF= と /の間にある文字を出力しようとしているのですが、なぜか読み込んだソースの一部がザーっと滝のように流れてその後に予想をはるかに超えた数のA HREF = と / の間の文字が出てきます。
予想を超えたA HREF = と / の間の文字はおそらくifの各所にlpszSrcに動いた文字分だけ足さないといけないのだと思いますが、具体的にどのような感じになるのか良くわかっていません。あと、なぜ表示されないと思っていたhtmlソースが表示された原因がわかりません。ご教授お願いします


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ソースをある文字で検索したときに、多すぎるprintfの結果 5535 とろり 2006/03/04 12:43:15


No.5535

Re:ソースをある文字で検索したときに、多すぎるprintfの結果
投稿者---とろり(2006/03/04 12:43:15)


こんにちは。

> 予想を超えたA HREF = と / の間の文字はおそらくifの各所にlpszSrcに動いた文字分だけ足さないといけないのだと思いますが、
・・・
> あと、なぜ表示されないと思っていたhtmlソースが表示された原因がわかりません。

質問内容が難解で良く分かりませんでしたので、ソースから類推しました。

ソースでは"A HREF="が見つかった後、最初に出てくる"/"までを表示しています。
で、次の"A HREF="を検索する場合、lpszSrcを"/"の次に進める必要がありますが、提示されたソースではその記述がありません。
なので、最後の"A HREF="を表示し終えるまで、ひたすら"A HREF="〜"/"の間を表示し続けます。

lpszSrc = q;とすれば上手くいくかもしれません。(提示されたソースが完全ではないので何とも言えませんが)


この投稿にコメントする

削除パスワード

No.5536

Re:ソースをある文字で検索したときに、多すぎるprintfの結果
投稿者---とろり(2006/03/04 12:45:13)


訂正。

> lpszSrc = q;とすれば上手くいくかもしれません。

⇒lpszSrc = q;をある箇所に入れれば上手くいくかもしれません。


この投稿にコメントする

削除パスワード

No.5544

Re:ソースをある文字で検索したときに、多すぎるprintfの結果
投稿者---taka(2006/03/04 23:59:31)


>訂正。
>
>> lpszSrc = q;とすれば上手くいくかもしれません。
>
>⇒lpszSrc = q;をある箇所に入れれば上手くいくかもしれません。
おっしゃるとおりに書いてbreak;処理も追加したらうまくいきました。
ありがとうございます。ポインタの動き(厳密には違うと思いますがこの場合はあえて)をイメージできていなかったのが原因のようです。無事解決できました。ありがとうございます。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity