繁体   English   中英

查找字符串中存在的不同字符

[英]Find the different characters present in a string

有没有办法找到字符串中存在的所有唯一字符而不查找字符串的所有出现 例如,设为字符串a =“mississippi”,输出应为{i,m,p,s} 是否有任何内置函数可以在c ++中找到它?

你可以使用std::sort, std::unique, std::string::erase来做到这一点

注意 :原始字符串将被修改[如果你不想复制它]

std::string str = "mississippi";
std::sort(std::begin(str), std::end(str));
auto last = std::unique(std::begin(str), std::end(str));
str.erase(last, std::end(str));

制作一字符并将字符串中的所有项目放入其中,然后您将设置字符串的“字母”。

例如:

#include <string>
#include <iostream>
#include <set>

int main(void)
{
    std::string a = "mississippi";
    std::set<char> alphabet;
    alphabet.insert(a.begin(), a.end());
    std::cout << "Set of chars has " << alphabet.size() << " items." << std::endl;
    for (auto a : alphabet)
    {
        std::cout << a << std::endl;
    }
}

在该示例中不修改原始字符串,并且不需要预先排序。

听起来不太常见,它不是STL的一部分。
我只是尝试遍历字符串并创建/增加Hashset中的数字计数。 然后,抓住所有键以确定唯一值。 祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM