将两个字符串a和c插入合并为s,第二个字符串c插入第一个字符串a中,从左往右第n位后面开始插入,n位0则插入a的前面,n大于a的长度,则追加到a的后面,c++编写这个程序
时间: 2024-11-27 21:12:22 浏览: 15
在C++中,你可以使用标准库中的`string`类型和一些基本操作来实现这个功能。下面是一个简单的示例代码,它考虑了所有提到的情况:
```cpp
#include <iostream>
#include <string>
std::string insertString(const std::string& a, const std::string& c, int n) {
if (n <= 0) {
return a + c; // 如果n小于等于0,直接在前面插入
}
if (n > a.length()) {
return a + a.substr(0, n - a.length()) + c; // 如果n大于a长度,追加到后面
}
// 找到插入位置,如果n对应的位置是0,插在开头;否则按照索引插入
size_t pos = (n == 0) ? 0 : n;
return a.substr(0, pos) + c + a.substr(pos);
}
int main() {
std::string strA = "Hello";
std::string strC = "World";
int n = 3;
std::string result = insertString(strA, strC, n);
std::cout << "Result: " << result << std::endl;
return 0;
}
```
这个程序首先检查`n`的值,然后根据其大小来确定插入位置。如果`n`小于等于0,就在字符串a的开头插入;如果`n`大于a的长度,就在a的末尾追加c;其他情况根据`n`在a中的位置进行插入。
阅读全文