C++で、文字列の置換、string編です。
#include <iostream>
#include <string>
using namespace std;
bool MyReplaceString(string &str,const string &oldstr,const string &newstr);
int main(){
string str = "Hello ruby python perl ruby C++ ruby";
//rubyをRに置換
//文字列リテラルを部分文字列として渡しstringオブジェクトに変換
//ループして全部置換する
while(MyReplaceString(str,"ruby","R"))
cout << str << endl;
cout << endl;
//stringオブジェクトを明示的に渡す例
string oldstr("perl");
string newstr("java");
//perlをjavaに置換
MyReplaceString(str,oldstr,newstr);
cout << str << endl;
return 0;
}
//置換が行われたらtrueを返す。
bool MyReplaceString(string &str,const string &oldstr,const string &newstr){
string::size_type startidx;
startidx = str.find(oldstr);
if (startidx != string::npos){
str.replace(startidx,oldstr.size(),newstr);
return true;
}
return false;
}