• ベストアンサー

C言語 比較抽出

C言語 コンソール VC6.0で悩んでいます。 ABC.com ABC.com DEF.co.jp GHI.go.jp DEF.co.jp DEF.co.jp JKL.com JKL.com ABC.com 上記のようなデータがsData[i]にあり、 ABC.com  3回 DEF.co.jp  3回 GHI.go.jp  1回 JKL.com  2回 のように画面に出力したいのですが、表示も処理も一緒だとややこしいので 表示は後回しにして、一度sHost[i]とiNum[i]に格納しようと考えています。 strcmpでの比較をwhileやforで多重ループで回すくらいしか思い付きません。 何か案だけでもいただけないでしょうか。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

一度クイックソートで並べ替えしてしまえば、 あとは、最初から最後まで見ていけばOKですよね。

その他の回答 (3)

回答No.4

> strcmpでの比較をwhileやforで多重ループで回すくらいしか思い付きません。 まずはそれを実装してみりゃえぇのではないかと。

回答No.3

的外れだったら御免なさい。 データの整理が目的であれば、e?grepを使うことをお奨めします。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

ある程度データが固定されているのであれば、あらかじめソートしておくのが正解ですね。 後からどんどんデータが追加されていくような状況で、途中経過を表示させたいのであれば、ハッシュか二分木(またはそれに代わるもの。赤黒木とか...)あたりを使うのがよいかもしれません。

関連するQ&A

  • C言語のポインタと配列

    どうにも理解しようとしていますが全体像が理解できないので、わかっていることわからないことまとめていくのでバンバン指摘してくださるとうれしいです。 1.配列の宣言には int a[]; a[] = {1,2,3}ですが、コンピュータは{"1","2","3"}の部分の数を数えて[]に代入しているので、 int [][3] = {{1,2,3},{4,5,6}}のような配列を作ったとき[][3]の部分の左側の数字も勝手に代入している。 この時なぜ3が勝手に代入されないかがわからない 2.数字とメモリ int s = {1,2,3}をメモリ的に表現すると、123の順に並んでいる。s[1]=2 int s[][2] = {{1,2,3},{4,5,6}}をメモリ的に表現すると123456に並んでいる。s[1][1]= 5 ここまで文字列以外の配列は添え字だけで管理されている。 3.文字列とポインタ char s[] = "abc"とするとメモリ的にはabc\0であり、[]には4が代入され、s[1]はb自身を指す。 char *s = "abc"をメモリで表すとabc\0であり、\0が来るまでを文字列と認識する。 sは&s[0]とも表現できるように、最初のアドレスを指し示している。 char *s[]= {"abc","def"}をメモリ的に表現するとabc\0def\0であり、[]には2がコンピュータにより判断されて代入される。\0までを文字列として表現しようとする。s [1] は"def"の最初のアドレスを指し示すが、s[1][1]とするとe自身を指すようになる。この時、s[1] = &s[1][0]と表現することは可能であると考えられる。 文字列を直接さす場合でも、ポインタで表現する場合でも、\0が要素の最後に来るのでしょうか? また、{{"abc","def"},{"ghi","jkl"}}を文字列で直接表す場合は char s[2][2] = {{"abc","def"},{"ghi","jkl"}}; となるかと思いますが char *s[2][2] = {{"abc","def"},{"ghi","jkl"}}; とするとs[1][1]でghiの最初のアドレスを、s[1][1][0]でg自身を表せるようになるのでしょうか?

  • エクセルで,スペースのある文字列を列ごとに分けるには?

    例えば abc def ghi jkl mno pqr という文章があったとします。 それを |abc|def|ghi| ------------- |jkl|mno|pqr| みたく,スペースのあるところで区切るにはどのようにすればよいでしょうか。教えてください。

  • 複数種類の括弧でくくられてない文字をマッチングさせたい

    Perlの正規表現で質問です。 複数種類の括弧、たとえば()、【】、[]などで囲まれていない文字をマッチングさせたいのです。 括弧は1行に複数ある可能性があり、ない場合もあります。 (abc)【def】ghi【jkl】 だとghiの部分。 【abc】【def】(ghi)jkl(mno) だとjklです。 頭に必ず括弧が来たり、括弧が一回だけなら括弧閉じるの種類をor検索ではじけるのですが、何回くるかわからないのでどうしたらいいか困っています。 方法がありましたら教えてください。

    • ベストアンサー
    • Perl
  • dosでサイズを比較して異なるファイルだけコピー

    dosで全フォルダ内のファイルサイズを比較して異なるファイルだけコピーしたい 次のようなファイル構成で AAAフィルダ    BBBフォルダ  cccフォルダ    cccフォルダ   abc.txt      abc.txt   def.jpg      def.jpg  dddフォルダ    dddフォルダ   ghi.txt      ghi.txt   jkl.jpg      jkl.jpg AAA\ccc\abc.txtとBBB\ccc\abc.txt AAA\ccc\def.jpgとBBB\ccc\def.jpg AAA\ddd\ghi.txtとBBB\ddd\ghi.txt AAA\ddd\jkl.jpgとBBB\ddd\jkl.jpg 拡張子は問わずそれぞれに対するファイルのファイルサイズを比較して 大きくても小さくても異なるファイルだけbbbフォルダ内に上書きコピー したくご教授をお願いします

  • エクセル2007の使い方について

    エクセル2007に関する質問です。 例えば http://www.******.com/abc.html http://www.******.com/def.html http://www.******.com/ghi.html http://www.******.com/jkl.html という異なるURLがセルに1行づつあって、別のセルに /?aid=1234 とあった場合に、この?aid=1234を各URLの 後ろに一括して挿入するにはどうすればいいでしょうか? 下記のような形になるように一括で作業したいです。 http://www.******.com/abc.html/?aid=1234 http://www.******.com/def.html/?aid=1234 http://www.******.com/ghi.html/?aid=1234 http://www.******.com/jkl.html/?aid=1234

  • excelでデータの位置を変えたい

    abcdefghijklmn~と続いているものを abc def ghi jklと変えることはできるでしょうか? よろしくお願いします

  • Excelでのリンク機能関数

    シート1が以下のようにあったとします。 A B 1 No.1 abc 2 No.2 def 3 No.3 ghi 4 No.4 jkl シート2で、A1に「No.1」と記入するとB1に「abc」と表示したいのです。 A B 1 No.1 abc 2 No.2 def 3 No.3 ghi 4 No.4 jkl ↑ ↑ 手動 自動表示 このように出来る関数はありますか? また、使い方のサンプルなどもあればありがたいです。 よろしくお願いします。

  • 秀丸の検索・置換の正規表現の最短一致の挙動が変です

    秀丸の検索または置換の正規表現の 最短一致での挙動ですが、 /abc/def/ghi/jkl/mno/pqr/st/uvw.xyz の先頭にカーソルを置いた状態で、 (質問1) 正規表現のチェックボックスをチェックして /.*$ で検索すると /abc/def/ghi/jkl/mno/pqr/st/uvw.xyz が検索されると思うのですが 実際には /def/ghi/jkl/mno/pqr/st/uvw.xyz が検索されてしまいます。 なぜでしょうか。 (/abc/.*$とするとカーソルがある /abc/def/ghi/jkl/mno/pqr/st/uvw.xyz ではなく次の行以降の /abc/def/ghi/jkl/mno/pqr/st/uvw.xyz が検索されてしまいます?) (質問2) 正規表現のチェックボックスをチェックして /.*?$ で検索すると最短一致となるため /uvw.xyz が検索されると思うのですが 実際には /def/ghi/jkl/mno/pqr/st/uvw.xyz が検索されてしまいます。 なぜでしょうか。 (なお、/[^/]*$では/uvw.xyzが検索されます)

  • Accessで、別のテーブルにある同じフィールドを結合する(至急)

    いつも大変お世話になっております。m(_ _)m 分かりましたら、至急お願いしたいのですが Accessで、別々のテーブル(またはクエリ)に同じ「型番」「数量」というフィールドがあって、それぞれ別々の情報が入っています。 それを、1つに結合することは可能ですか? 例) テーブルA: 型番/数量 ABC/5 DEF/3 テーブルB: GHI/2 JKL/3 この2つのテーブル(A・B)を1つのフィールドに表示したい。 型番/数量 ABC/5 DEF/3 GHI/2 JKL/3 というように。。。 Accessの基本にのっとっていないのかもしれませんが、何とかできたらと思います。できるだけ簡単な方法で・・・ どうぞよろしくお願いします。

  • エクセル セルの並べ換え方法について教えて下さい

    縦 A列とB列に入力してある内容を縦一列にまとめて上下二段にする方法、 どなたか教えて下さい! A列   B列 abc def ghi jkl    mno pqr これを A列 abc def ghi jkl mno pqr という様にしたいのです。