完整程序
#include<iostream>
#include<string>
#include<vector>
#include<stdexcept>
using namespace std;
int main()
{
string s, k; //字符串s,k
size_t n, m = 0, z = 0; //索引和计数器
vector<char> sum; //用于存储新字符串
cout << "请输入第一个字符串s:" << endl;
while (cin >>s)
{
cout << "请输入第二个字符串k:" << endl;
cin >> k;
cout << "请输入插入索引的位置n:" << endl;
cin >> n;
try {
if (s.size() < n){
throw runtime_error("输入的索引位置n超过了s的长度,输入错误!");
}
else {
for (size_t i = 0; i != s.size() + k.size(); i++) {
if (i < n) {
sum.push_back(char(s[i]));
++z;
}
else if (i >= n && i < z+k.size()) {
sum.push_back(char(k[m]));
++m;
}
else {
for (z; z != s.size(); z++) {
sum.push_back(char(s[z]));
}
break;
}
}
}
}
catch (runtime_error err) {
cout << err.what() << "\ntry again? enter y or n" << endl;
char c;
cin >> c;
if (!cin || c == 'n')
break;
}
for (auto i : sum) {
cout << i;
}
cout << endl;
cout << "请输入第一个字符串s:" << endl;
sum.clear();
z = 0, m = 0;
}
}
演示结果
分部讲解
首先声明四个调用库和命名空间省略
第一个是输入输出库
第二个是string声明库
第三个是vector容器库
第四个是命名空间省略
#include<iostream>
#include<string>
#include<vector>
#include<stdexcept>
using namespace std;