21xrx.com
2024-12-27 14:38:26 Friday
登录
文章检索 我的文章 写文章
C++ 如何判断数组中有多少种不同类型的字符串
2023-07-07 13:11:08 深夜i     --     --
C++ 数组 字符串 不同类型 判断

在C++中,判断一个数组中有多少种不同类型的字符串需要用到一些字符串处理的技巧。一般来说,我们可以利用哈希表或者集合来记录每个字符串出现的次数,然后根据出现次数来计算不同类型的字符串数量。

首先,我们需要定义一个哈希表或者集合来记录每个字符串出现的次数。如果使用哈希表,可以将字符串作为键,出现次数作为值。如果使用集合,可以直接将不同的字符串添加到集合中,然后计算集合大小即可。

接下来,需要遍历整个数组,并将每个元素逐个添加到哈希表或者集合中。为了去除字符串中的空格和标点符号等特殊字符,可以使用C++中的字符串处理函数,如std::remove_if()和std::transform()等。

最后,根据哈希表或者集合中不同键的数量计算不同类型的字符串数量即可。

下面给出一个示例代码:


#include <iostream>

#include <unordered_map>

#include <algorithm>

int main() {

  std::string strs[] = world!";

  std::unordered_map<std::string, int> count;

  for (auto& str : strs) {

    std::transform(str.begin(), str.end(), str.begin(), ::tolower);

    str.erase(std::remove_if(str.begin(), str.end(), ::ispunct), str.end());

    count[str]++;

  }

  std::cout << "The array contains " << count.size() << " different types of strings." << std::endl;

  return 0;

}

在上面的示例代码中,我们使用了std::unordered_map来记录每种字符串出现的次数,并使用std::transform和std::remove_if函数来去除字符串中的标点符号等特殊字符。最后通过count.size()计算不同类型的字符串数量。

  
  

评论区

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