c++:用多个数字替换字符串中的字符
C++: Replace character in a string with more than one number?
我目前正在尝试用多个数字替换字符串中的单个字符。让我们快点:
replace(string.begin(), string.end(), 'a', '1');
^ 工作! ^
replace(string.begin(), string.end(), 'a', '11');
或
replace(string.begin(), string.end(), 'a', "1");
^ 不工作! ^
我该怎么做?它有什么功能吗?
注意:我不是在问如何:
- 用另一个字符串替换部分字符串
- 用另一个子字符串替换子字符串
您应该使用std::basic_string
类的某个重载成员函数replace
,而不是标准算法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' );
}
您需要给出与要替换的值和替换值相同类型的参数。
'a'
为char
, "1"
为字符串。你不能混合这两个,replace
在这种情况下只支持char
s。
注意:'11'
不是一个有效的字符。
相关文章:
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 尝试将字符串/字符转换为整数会产生意外结果
- 为什么没有访问所有字符串字符?
- 将子字符串字符从字符串值转换为 int,然后将其分配给 int 变量
- 如何将字符串字符与结构数组进行比较?
- 将单个字符串/字符输入串行监视器
- 读取字符串字符时出错 - 对于数组中的字符串值
- C++ C 样式字符串/字符数组的大小 - 优化
- 读取字符串字符时出错
- C++ 使用 Strtok 读取字符串字符时出错
- 如何将 int 数组的 1 个元素转换为字符串/字符
- 在另一个字符串中逐个复制字符串字符
- 将字符串字符映射到矢量
- MBED RTOS将Float转换为字符串/字符阵列
- 如何使用字符串字符数组中的 ++ 运算符访问下一个字符串
- 如何比较C++中的单个字符串字符?
- 内部字符串/字符如何在 int 和 float 中存储
- 将十六进制转换为可打印的字符串/字符
- wcscpy_s后读取字符串字符时出错
- 检查字符串字符和长度