用c++,合并两个字符串为一个新的字符串,确保在新字符串中,两个字符串的所有字符仅出现一次
时间: 2023-06-24 19:07:26 浏览: 145
可以使用C++的STL库中的set和stringstream来实现。
set是C++ STL库中的一个容器,它可以自动去重,可以用来存储字符串中的字符。而stringstream是一个流,可以将字符逐个读入并组合成一个新的字符串。
具体实现代码如下:
```c++
#include <iostream>
#include <set>
#include <sstream>
using namespace std;
string mergeStrings(string s1, string s2) {
// 将两个字符串中的所有字符存入set中,自动去重
set<char> s;
for (char c : s1) {
s.insert(c);
}
for (char c : s2) {
s.insert(c);
}
// 将set中的字符逐个读入stringstream中,组成一个新的字符串
stringstream ss;
for (char c : s) {
ss << c;
}
return ss.str();
}
int main() {
string s1 = "hello";
string s2 = "world";
cout << mergeStrings(s1, s2) << endl; // 输出 "helo wrd"
return 0;
}
```
在这个实现中,首先将两个字符串中的所有字符存入set中。由于set会自动去重,因此set中只会保留两个字符串中的不同字符。然后,将set中的字符逐个读入stringstream中,组成一个新的字符串。最后,返回stringstream中的字符串即可。
阅读全文