#include #include #include #include #include #include void replace( std::string& str, const std::string& from, const std::string& to ) { using std::string; string::size_type pos = str.find( from ); while ( pos != string::npos ) { str.replace( pos, from.size(), to ); pos = str.find( from, pos+from.size()-1 ); } } //========================================================================== int main(int argc, char **argv) { if (argc!=4) { std::cerr << "usage : "<< argv[0] <<" fileIn \"FindString\" \"ReplaceString\"" << std::endl; return 1; } FILE *ffIn; std::string fileIn; std::string fileOut; std::string findstring; std::string replacestring; std::string lineStr; char strTmp[255]; fileIn = argv[1]; findstring = argv[2]; replacestring = argv[3]; ffIn = fopen(fileIn.c_str(),"r"); if (ffIn){ while(!feof(ffIn)){ fgets( strTmp , 255, ffIn ); lineStr=strTmp; if( feof(ffIn) && (lineStr.length()==1) ) { } else { replace( lineStr,findstring, replacestring ); std::cout << lineStr; } } fclose(ffIn); } else { std::cerr << "ERROR. File : "<< argv[1] <<" Not exists." << std::endl; return 1; } return 0; } //==========================================================================