我目前正在尝试用多个数字替换字符串中的单个字符。让我们快速:
replace(string.begin(), string.end(), 'a', '1');
^作品!^
replace(string.begin(), string.end(), 'a', '11');
或者
replace(string.begin(), string.end(), 'a', "1");
^不工作!^
我该怎么做?有功能吗?
注意:我不是在问如何:
你应该使用一些重载成员函数replace
类的std::basic_string
而不是标准的算法std::replace
。
例如
for ( std::string::size_type pos = 0;
( pos = s.find( 'a', pos ) ) != std::string::npos;
pos += 2 )
{
s.replace( pos, 1, 2, '1' );
}
或者,如果数字可以是任意字符串,那么您可以编写
std::string number( "123" );
for ( std::string::size_type pos = 0;
( pos = s.find( 'a', pos ) ) != std::string::npos;
pos += number.size() )
{
s.replace( pos, 1, number );
}
如果要用字符替换数字,则可以写
for ( std::string::size_type pos = 0;
( pos = s.find( "11", pos ) ) != std::string::npos;
++pos )
{
s.replace( pos, 2, 1, 'a' );
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句