21xrx.com
2024-12-22 23:53:00 Sunday
登录
文章检索 我的文章 写文章
C++删除重复字符
2023-07-04 14:15:17 深夜i     --     --
C++ 删除 重复字符

C++是一种强大的编程语言,可以通过它来删除重复字符。重复字符是指在一个字符串中出现多次的相同字符。在字符串操作中,处理重复字符是一项基本任务,尤其是在数据处理中。本文将介绍如何使用C++来删除重复字符。

首先,我们需要一个字符串变量来存储输入的字符串。可以使用C++中的字符串类(std::string)来创建一个字符串变量。


#include <iostream>

#include <string>

using namespace std;

int main() {

 string userInput;

 getline(cin, userInput);

 cout << "Input string: " << userInput << endl;

 // your code here

 return 0;

}

上面的代码使用getline函数从控制台读入字符串。接下来,我们需要在这个字符串中找到所有重复字符。可以使用一个循环来遍历字符串中的每个字符,并将其与字符串中的其它字符进行比较。


string output = "";

for (int i = 0; i < userInput.length(); i++) {

 bool isDuplicate = false;

 for (int j = 0; j < i; j++) {

  if (userInput[i] == userInput[j])

   isDuplicate = true;

   break;

  

 }

 if (!isDuplicate) {

  output += userInput[i];

 }

}

cout << "Output string: " << output << endl;

上面的代码使用两个for循环来比较每个字符。首先,外层循环遍历字符串的每个字符。然后,内层循环遍历较早的字符,并检查它们是否与当前字符相同。如果找到一个与当前字符相同的早期字符,则isDuplicate设置为true。否则,将当前字符添加到一个新的字符串(output)中。

最后,我们输出处理后的字符串(output)。下面是完整的代码。


#include <iostream>

#include <string>

using namespace std;

int main() {

 string userInput;

 getline(cin, userInput);

 cout << "Input string: " << userInput << endl;

 string output = "";

 for (int i = 0; i < userInput.length(); i++) {

  bool isDuplicate = false;

  for (int j = 0; j < i; j++) {

   if (userInput[i] == userInput[j])

    isDuplicate = true;

    break;

   

  }

  if (!isDuplicate) {

   output += userInput[i];

  }

 }

 cout << "Output string: " << output << endl;

 return 0;

}

如果您想对该算法进行优化,则可以使用C++中的容器或算法来实现相同的效果。例如,您可以使用unordered_set容器来存储字符串中的独特字符。这种方法比循环更有效率,尤其是在处理大型字符串时。

总之,使用C++删除重复字符并不难,只需遍历字符串中的每个字符,并与其它字符进行比较即可。如果您需要优化代码,则可以使用现有的算法或容器来实现同样的效果。无论您使用哪种方法,都应该考虑到效率和可读性。

  
  

评论区

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