21xrx.com
2024-12-28 04:31:57 Saturday
登录
文章检索 我的文章 写文章
C++代码:保留相同的字符
2023-06-28 14:46:50 深夜i     --     --
C++ 代码 保留 字符 相同

字符串操作是C++编程中非常重要的一部分。有时候我们需要找出两个字符串中相同的字符并将它们保留下来。下面的代码演示了如何在C++中实现这个功能。


#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

int main()

{

  string str1 = "hello";

  string str2 = "world";

  string result;

  // 将字符串按字母表顺序排序

  sort(str1.begin(), str1.end());

  sort(str2.begin(), str2.end());

  // 将两个字符串中相同的字符加入结果字符串

  set_intersection(str1.begin(), str1.end(), str2.begin(), str2.end(), back_inserter(result));

  // 输出结果字符串

  cout << "相同的字符为: " << result << endl;

  return 0;

}

这段代码首先声明了两个字符串`str1`和`str2`,并将它们分别设置为"hello"和"world"。然后使用C++的STL函数`sort`将两个字符串按字母表顺序排序。接下来,使用`set_intersection`函数找出这两个字符串中相同的字符,并将它们添加到一个新的字符串`result`中。最后,输出字符串`result`即可。

需要注意的是,这段代码需要包含头文件` `、` `和` `。使用`using namespace std;`则免去了每次调用STL函数时都需要使用`std::`前缀的麻烦。

在实际程序中,如果需要多次执行这个任务,可以将它们封装成一个函数。例如:


string retainSameChars(string str1, string str2)

{

  string result;

  // 将字符串按字母表顺序排序

  sort(str1.begin(), str1.end());

  sort(str2.begin(), str2.end());

  // 将两个字符串中相同的字符加入结果字符串

  set_intersection(str1.begin(), str1.end(), str2.begin(), str2.end(), back_inserter(result));

  return result;

}

这个函数可以接受两个字符串作为输入,并返回一个字符串,其中仅包含这两个字符串中相同的字符。这种封装方式可以大大简化代码并提高可重用性,我们可以在需要时直接调用这个函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复