• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語でテキストを抽出)

C言語でテキストを抽出する方法は?

このQ&Aのポイント
  • C言語初心者なのですが、C言語で与えられたファイルの一部を抽出する方法を教えて頂けませんでしょうか?
  • 具体的には、与えられたxmlファイルから特定のデータを抽出して新たなファイルを作りたいです。
  • C言語でこれを実現する方法があれば教えてください。

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

  • ベストアンサー
回答No.2

C言語のプログラムでXMLを読むなら、expatやlibxmlを使うのが普通だと思います。 http://expat.sourceforge.net/ http://xmlsoft.org/ "サンプル"や"使い方"をつけて検索すると使用例や解説ページが見つかると思います。 C言語でできますが、自分だったら特別な理由がない限りC言語でプログラムを書かないでしょう。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6970)
回答No.1

#include<stdio.h> int main(){ int c; int a; a=0; while((c=getchar())!=EOF){ if(c=='<') a=1; if(a==0) printf("%c",c); if(c=='>') a=0; } return(0); } 結果はこんな感じ 20 watanabe 68 21 sato 22 yoshida 49 23 yamada 87

flower888flower
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語のタグの抽出について

    C言語を学習しているものです。 main関数内で定義した "<pro><name>chad smith</name><id>1234</id><live>America<live></pro>" を抽出し表示するプログラムの作成を考えております。 第一パラメータに抽出したいタグ名を書くと表示されるようにします。 >>プログラム名 id 1234 >>プログラム名 name chad smith >>プログラム名 pro <name>chad smith</name><id>1234</id><live>America<live> のような表示にされるようにします。 自分なりに考えてみましたが結果がうまくいかないため質問させて頂きます。 #include<stdio.h> #include<string.h> #define BUF 256 int main(int argc ,char *argv[]) { char str1[]="<pro><name>chad smith</name><id>1234</id><live>America<live></pro>"; char str2[BUF]; printf("%s",&str2[0]); return 0; } 上記のプログラムに対して自分なりにstrstr()とmemcpy()を使用してみましたがうまくいきませんでした。 strstr()を用いますと文字列の最初から検索していきますが 第一パラメータでタグ名だけを宣言しますので 前半の<○○>に辿りつきますが、後半の</○○>に辿りつけません。 何か良い対策がありましたらよろしくお願いいたします。

  • 複数テーブルをまとめてソート

    たとえば次のような、都道府県ごとのテーブルがあり、 ID、名前、得点の列があるとします。 テーブル1(テーブル名:tokyo) ID NAME SCORE 1 yamada 89 2 tanaka 45 テーブル2(テーブル名:osaka) ID NAME SCORE 1 sato 65 2 suzuki 22 これらのテーブルをまとめて、全国で得点が上位順に並べたいと 思っております。また、結果にはどのテーブルに所属するものかを 判別する列を追加したいのですが、どういう文を記述したらよいのでしょうか? 望みの結果は次のようなものです。 NAME SCORE TABLE_NAME yamada 89 tokyo sato 65 osaka tanaka 45 tokyo suzuki 22 osaka よろしくお願いします。

    • ベストアンサー
    • MySQL
  • C言語にてXMLファイルから任意部分抽出

    C言語にてXMLファイルからタブで囲まれた任意部分の文字列だけを抽出したいのですが、どうやればいいでしょうか? サンプルなどありましたらありがたいです。  <aaa>   <bbb>123/bbb>   <ccc>あああ</ccc>   <bbb>456</bbb>   <ccc>いいい</ccc>  </aaa> ・抽出したいのは、<bbb></bbb>と<ccc></ccc>で囲まれた文字列。 ・大量データの場合もあるので抽出性能は考慮したい。(基本はメモリ上で操作したい。)

  • javascriptにおけるXMLのデータ抽出

    HTML+javascriptについて。 XMLを使用してデータを表示する際、 100件のデータがあるとして、その中にA、B、Cタイプが あるとします。 この場合においてAタイプのものを抽出する、ということを する場合において、どのようにプログラムを組むのか、また、 XMLデータ構造としてはどのようにすればいいのか教えてください! (personタグでなくてAタグ、Bタグ・・・にはしない方法です) データ構造としては1と2ではどちらがいいのか? データ構造1 <group>  <person type="A" id="A01" value="医者"/>  <person type="B" id="B01" value="先生"/>  ・・・ </group> データ構造2 <group>  <person type="A">   <id>A01</id>   <value>医者</value>  </person>  <person type="B">   <id>B01</id>   <value>先生</value>  </person>  ・・・ </group>

    • ベストアンサー
    • XML
  • c言語でのfscanfについて

    例えば ------------------ ほげほげ1 ほげほげ2 1,2 2,4 3,8 4,16 ------------------ というデータファイルがあったとき3行目からのデータだけを抽出するにはc言語のfscanfでどのように書けばいいでしょうか? 簡単にでかまわないので、どなたか教えてください。

  • C言語でのXMLファイル入出力

    初心者のため、くだらない質問かと思いますが、お付き合いください。 C言語でXMLファイルを読み込んだり、書き込んだりすることって可能なんでしょうか? 自分なりに探してみたのですが、C++やC#、JAVAばかりでC言語でというのが見つかりませんでした。 どなたかご教授ください。 お願いします。

    • ベストアンサー
    • XML
  • C言語から呼び出し可能なXMLパーサについて

    このたび、XMLで記述されたファイルを読み込んで、 特定のデータのみを取り出すことになりました。 それで、XMLパーサを使用してそれを実現しようかと 思っています。C言語から呼び出し可能なXMLパーサがあれば、教えていただけませんでしょうか。(有償でも無償でもかまいません。実行時のOSはSparc系solarisですが、linux,windowsで使用可能なものでもかまいません。参考にしたいと思っています) JAVAからの呼び出し可能なものであれば、あるようですが、C言語から呼びさせるものは、検索しても見あたりませんでした。

  • C言語の課題なのですが、助けてください

    C言語のプログラミングの課題で、「以下のプログラムをキーワードを引数として入力できるように変更する(argvを利用する)」という問題なのですが、プログラミングが苦手な私にはさっぱりわからず、大変困っています。設問のプログラミングがわかる方がいらっしゃいましたら、教えていただけると大変助かります。よろしくお願いします。 #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX_LEN 256 int main(int argc, char *argv[]) { FILE *rfp; FILE *wfp; int i, score; double evalue; char id[MAX_LEN], name[MAX_LEN], fname[MAX_LEN]; char keyword[] = "glu"; for(i = 0; i < 100; i++){ sprintf(fname,"files/%d.txt",i); if((rfp = fopen(fname, "r")) == NULL) { printf("入力ファイルが存在しません。\n"); return (EXIT_FAILURE); } while (fscanf(rfp,"%s\t%s\t%d\t%f", id, name, &score, &evalue) != EOF){ if (strstr(name,keyword) != NULL){ printf("%s\n",id); } } fclose(rfp); } return (EXIT_SUCCESS); }

  • select文の記述について

    select文の記述について質問させていただきます。 下記のデータベースのテーブルの先頭からnumberを条件として 2名分のデータをselect文にて抽出したいと思っております。 (numberが重複し、重複数も異なるデータとなります。) select文の記述をどのようにするか教えていただければと思っております。 よろしくお願いいたします。 データベースのテーブル +——+—————+—————+————+ | id | name | number | score | +——+—————+—————+————+ | 1 | tanaka | 358 | 98 | | 3 | tanaka | 358 | 23 | | 4 | tanaka | 358 | 45 | | 11 | yamada | 126 | 63 | | 17 | yamada | 126 | 77 | | 23 | suzuki | 274 | 36 | | 45 | suzuki | 274 | 16 | | 59 | suzuki | 274 | 89 | | 73 | suzuki | 274 | 75 | | 80 | hanako | 89 | 24 | | (以下続く) | +——+—————+—————+————+ 抽出結果 +——+—————+—————+————+ | id | name | number | score | +——+—————+—————+————+ | 1 | tanaka | 358 | 98 | | 3 | tanaka | 358 | 23 | | 4 | tanaka | 358 | 45 | | 11 | yamada | 126 | 63 | | 17 | yamada | 126 | 77 | +——+—————+—————+————+

    • ベストアンサー
    • MySQL
  • c言語のfopen()がうまくいきません…。

    c言語のfopen()がうまくいきません…。 現在、XP環境でC言語(Turbo c)を使ってあるツールを作成しています。 パスも指定して13文字以上のファイル([13以上の文字列].txt)を読み込む必要があるのですが、 ロングファイルネームが認識できないのか、ファイルオープンに失敗してしまいます。 ショートファイルネームの取得法もわかるのですが、プログラムへの組み込み方がわかりません。 そこで、 1.ファイル名(ロングファイルネーム)を指定するとショートファイルネームが取得(あるいは変換)できる 2.ロングファイルネームのままでもオープンできる ↑↑のような何かいい方法はありますでしょうか?? 力技でもいいですが、他人も使用するツールなのでなるべくどのPCでも作動するような対応策の伝授をお願いします。 ちなみに、ツールの起動はDOSプロンプトからとなっています。 質問するのは初めてなのでどう書いたらいいのかわかりませんが、よろしくお願いします。