C++ 为什么在尝试用星号替换数组中的字符串时会发生错误?
它不允许我替换数组中的字符串,我不知道为什么C++ 为什么在尝试用星号替换数组中的字符串时会发生错误?,c++,C++,它不允许我替换数组中的字符串,我不知道为什么 if (t1Array[n] == banArray[o]) { //t1Array[n] = "***"; t1Array[n].replace(1, 2, 3, "***"); banArrayCount[o] ++; t1filterfile << t1Array[n]; } if(t1Array[n]==banArray[o]) { //t1Array[n]=“***”; t1Array[n]。替换(1,
if (t1Array[n] == banArray[o])
{
//t1Array[n] = "***";
t1Array[n].replace(1, 2, 3, "***");
banArrayCount[o] ++;
t1filterfile << t1Array[n];
}
if(t1Array[n]==banArray[o])
{
//t1Array[n]=“***”;
t1Array[n]。替换(1,2,3,“***”);
班纳瑞计数[o]++;
t1filterfile我认为您误解了std::string::replace
的工作方式:
#include <iostream>
#include <string>
int main() {
std::string str = "0123456789";
std::cout << str.replace(2,3,"***");
}
输出01*789
似乎要将字符串t1Array[n]
位置1开始的2个字符替换为3个星号
如果是这样的话,那么电话将看起来像
t1Array[n].replace( 1, 2, 3, '*' );
t1Array[n].replace( 1, 2, "***" );
此调用对应于以下成员函数声明
basic_string& replace(size_type pos, size_type n1, size_type n2, charT c);
或者您可以使用以下成员函数
basic_string& replace(size_type pos, size_type n1, const charT* s);
在这种情况下,调用将显示为
t1Array[n].replace( 1, 2, 3, '*' );
t1Array[n].replace( 1, 2, "***" );
考虑到位置从0开始
替换功能具有以下原型-
replace(starting location of replacement,number of characters to be replaced,a pointer to the string)