wafuの技術

技術習得の努力メモです。

C++で、文字列の置換(string)

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");
//perljavaに置換
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;
}