wstringの置き換えを行うには、replaceを使用します。
#include <stdio.h>
#include <tchar.h>
#include <locale.h>
#include <string>
#include <iostream>
/*
wstring中の特定文字列をwstringで置換する
*/
std::wstring ReplaceString
(
std::wstring String1 // 置き換え対象
, std::wstring String2 // 検索対象
, std::wstring String3 // 置き換える内容
)
{
std::wstring::size_type Pos( String1.find( String2 ) );
while( Pos != std::string::npos )
{
String1.replace( Pos, String2.length(), String3 );
Pos = String1.find( String2, Pos + String3.length() );
}
return String1;
}
int _tmain
(
int argc
, _TCHAR* argv[]
)
{
// 標準出力にユニコード出力する
setlocale( LC_ALL, "Japanese" );
// stringをstringで置換する
std::wstring str = ReplaceString(
L"ABCDEFG"
, L"D"
, L"あいうえお"
);
// 標準出力へ出力する
std::wcout << str.c_str() << std::endl;
// 正常終了
return( 0 );
}
ABCあいうえおEFG