質問するログイン新規登録

回答編集履歴

1

追記

2016/01/23 07:57

投稿

cateye
cateye

スコア6851

answer CHANGED
@@ -1,1 +1,54 @@
1
- ipadcaronさんの言うように、普通に文字列(string)として読み込んで,str.find("<P><p>");とかで見つければいいと思いますが?
1
+ ipadcaronさんの言うように、普通に文字列(string)として読み込んで,str.find("<P><p>");とかで見つければいいと思いますが?
2
+ [追記]
3
+ ```cpp
4
+ ~/test/cpptst >cat tst01.cpp
5
+ 
6
+ #include <iostream>
7
+ #include <fstream>
8
+ #include <string>
9
+
10
+ using namespace std;
11
+
12
+ bool strip(const string &ss);
13
+
14
+ int main()
15
+ {
16
+ string sbuf;
17
+ string stmp;
18
+
19
+ ifstream inFile("./tst01.xml");
20
+ // ファイルから文字列を全て読む
21
+ while( getline(inFile,stmp)){
22
+ sbuf += stmp;
23
+ }
24
+ //
25
+ if( !sbuf.empty()){
26
+ (void)strip(sbuf);
27
+ }
28
+ //
29
+ return 0;
30
+ }
31
+
32
+ bool strip(const string &ss)
33
+ {
34
+ string::size_type sp= 0;
35
+ string::size_type ep= 0;
36
+ //
37
+ sp= ss.find("<p><p>");
38
+ if( sp == string::npos ){
39
+ // 見つからなかった;;
40
+ return false;
41
+ }
42
+ sp += 6; // "<p><p>"をスキップ
43
+ ep= ss.find("</p></p>",sp);
44
+ //
45
+ if( ep != string::npos ){
46
+ // 終わりが見つかったら表示
47
+ cout << ss.substr(sp, ep-sp) << endl;
48
+ return true;
49
+ }
50
+ //
51
+ return false;
52
+ }
53
+ ~/test/cpptst >
54
+ ```