2008/11/28(Fri) 12:09:08 編集(投稿者)
> ファイルの内容を最初に全部読みこんじゃってもいいけど
> より汎用的に作るには、読みこみながら探す方が良く
> それだと search は使えないですね。
ですねー
とはいえきょうび数百MB程度のファイルなら
まるっとメモリに読み込むのどってことないから ^^;
#include <string>
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
/*
このソース自身を標準入力に食わせ、
"C++" を "しーぷらすぷらす"
に置換してみよぉ!
*/
int main() {
std::istreambuf_iterator<char> first(std::cin);
std::istreambuf_iterator<char> last;
std::string str(first,last);
std::cout << "before:\n" << str << std::endl;
std::string from = "C++";
std::string to = "しーぷらすぷらす";
for ( std::string::size_type pos = 0;
(pos = str.find(from,pos)) != std::string::npos;
pos += to.size() ) {
str.replace(pos, from.size(), to);
}
std::cout << "after:\n" << str << std::endl;
}