练习9.45:编写一个函数,接受一个表示名字的string参数和两个分别表示前缀(如“Mr.”或“Ms.”)和后缀(如“Jr.”或“III”)的字符串。使用迭代器及insert和append函数将前缀和后缀添加到给定的名字中,将生成的新string返回。
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
string add(string name, const string &prefix, const string &postfix)
{
name.insert(name.begin(), prefix.begin(), prefix.end());
name.append(postfix);
return name;
}
int main()
{
string name("Julina");
cout << "原名为:" << name << endl;
name = add(name, "Ms.", " III");
cout << "添加前后缀后为:" << name << endl;
return 0;
}
练习9.46:重写上一题的函数,这次使用位置和长度来管理string,并只使用insert。
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
string add(string name, const string &prefix, const string &postfix)
{
name.insert(0, prefix);
name.insert(name.size(), postfix);
return name;
}
int main()
{
string name("Julina");
cout << "原名为:" << name << endl;
name = add(name, "Ms.", " III");
cout << "添加前后缀后为:" << name << endl;
return 0;
}