21xrx.com
2024-09-20 00:24:39 Friday
登录
文章检索 我的文章 写文章
C++如何判断一个字符串是否只包含一种字符?
2023-07-03 21:36:49 深夜i     --     --
C++ 字符串 判断 包含 一种字符

C++中判断一个字符串是否只包含一种字符是一项很常见的操作。实现这个功能的方法有很多,但其中比较简单和易懂的方法是使用STL库中的std::unique函数。

首先,我们需要知道STL库中的std::unique函数的作用是将一个容器中连续的重复元素去掉,返回的是去重后的范围,即去重后的末尾迭代器位置。我们可以通过判断去重后的容器大小来判断原容器中是否只包含一种元素。

下面是代码实现:


#include <iostream>

#include <algorithm>

#include <string>

using namespace std;

int main() {

  string str = "dddddddd";

  auto end = unique(str.begin(), str.end()); // 去重

  bool isOnlyOneChar = (end - str.begin() == 1); // 判断是否只有一个字符

  if (isOnlyOneChar) only one char!" << endl;

   else multiple chars!" << endl;

  

  return 0;

}

首先,我们定义了一个字符串str,内容为8个d。然后,我们使用std::unique函数对str进行去重,获得去重后的容器范围的末尾迭代器位置。接着,我们通过判断末尾迭代器位置和容器起始位置的距离是否为1,来判断原容器中是否只包含一种元素。最后,我们根据判断结果输出相应的信息。

需要注意的是,std::unique函数只会去除相邻的重复元素,因此我们需要先对字符串进行排序,才能保证去重后的元素是连续的。

这是一个比较简单和易懂的方法,使用std::unique函数可以轻松实现判断一个字符串是否只包含一种字符的功能。

  
  

评论区

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