我想替换向量字符串中的字符串。我的意思是,我有一个向量字符串,定义向量tmpback,其信息如下:name_lastname_phonenumber

我想替换一些姓氏。例如,如果某人是john_smith_5551234,我想将Smith替换为smith100。

这是我的代码,部分包含:

vector<string> tmpback = names;
for (Int_t i = 0; i < tmpback.size(); i++) {
   replace(tmpback[i].begin(),tmpback[i].end(),"smith", "smith"+number);
}


(我之前将数字定义为Int_t number = 0,然后再提供一些值)。
有人知道我在做什么错吗?

谢谢

最佳答案

我的直接反应是想知道为什么您让自己陷入这种状况。与其将三个单独的项目塞入一个字符串中,然后操纵该字符串的各个部分,不如创建一个结构以便可以分别处理每个部分,而不是将其插入字符串中?

struct person {
    std::string first_name;
    std::string last_name;
    int record_no;
    std::string phone_number;
};


这样,您无需在姓氏的末尾加上记录号(或您的“ 100”代表的确切数字),只需给它自己的字段,并根据需要写一个适当的数字即可:

vector<person> tmpback;

for (int i=0; i<tmpback.size(); i++)
    tmpback[i].record_no = number;

09-06 14:47