请使用C++编写一个程序,将一个子字符s2插入到主字符s1中,其起始插入位置为n
时间: 2023-12-14 09:37:32 浏览: 73
以下是一个使用C++标准库的示例程序,可以将字符串s2插入到字符串s1的第n个位置:
```
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1 = "Hello, world!";
string s2 = "beautiful ";
int n = 7;
s1.insert(n, s2);
cout << s1 << endl;
return 0;
}
```
在这个程序中,我们首先定义了两个字符串变量s1和s2,以及一个整型变量n,用于指定插入位置。然后,我们使用string类的insert方法将s2插入到s1的第n个位置。最后,我们输出修改后的s1字符串。
如果需要手动实现字符串插入功能,可以使用C++标准库中的字符串操作函数,例如strcpy、strcat和strlen等。以下是一个使用这些函数手动实现字符串插入的示例程序:
```
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char s1[] = "Hello, world!";
char s2[] = "beautiful ";
int n = 7;
int len1 = strlen(s1);
int len2 = strlen(s2);
// 将s1的第n个位置及之后的字符向后移动len2个位置
for (int i = len1; i >= n; i--)
{
s1[i + len2] = s1[i];
}
// 将s2插入到s1的第n个位置
for (int i = 0; i < len2; i++)
{
s1[n + i] = s2[i];
}
cout << s1 << endl;
return 0;
}
```
在这个程序中,我们首先定义了两个字符数组s1和s2,以及一个整型变量n,用于指定插入位置。然后,我们使用strlen函数获取s1和s2的长度。接着,我们通过循环将s1的第n个位置及之后的字符向后移动len2个位置,为插入s2腾出空间。最后,我们再循环将s2插入到s1的第n个位置。最终,我们输出修改后的s1字符串。