我想替换向量字符串中的字符串。我的意思是,我有一个向量字符串,定义向量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;