如何在c++中检查字符串是否包含字母表中的每个字母
How to check whether a string contains every letter in the alphabet in C++
我想写一个c++程序来检查一个字符串是否包含字母表中从a到z的所有字母
bool allLetters(string s) {
vector<bool> checked(255, false);
for (int i=0; i < int(s.size()); ++i)
checked[s[i]] = true;
for (int i='a'; i <= 'z'; ++i)
if (!checked[i])
return false;
return true;
}
假设一个字母从a到z连续的字符集:
bool contains_all_letters(const char * p)
{
unsigned seen = 0;
while (*p)
{
unsigned c = *p++ - 'a';
if (c < 26)
{
seen |= (1 << c);
}
}
return seen == (1 << 26) - 1;
}
您总是可以这样做(在ASCII中)
bool has_alphabet(std::string const &s)
{
std::bitset<26> alphabet;
for (char c : s) {
if (c >= 'A' && c <= 'Z')
alphabet.set(c - 'A');
else if (c >= 'a' && c <= 'z')
alphabet.set(c - 'a');
}
return 26 == alphabet.count();
}
你需要包括bitset
标题,无论大写是在小写字母之前还是之后,或者它们之间有其他符号,这将工作
相关文章:
- 链表包含 c++ 中不同的派生类对象
- 如何在C++中移动字母表中的字母?
- 循环回到z之后的字母表的开头
- C 分类字符串按大小和字母表
- 我在使用布尔函数时遇到问题,其中用户输入两个字母并输出字母表中最高的字母
- 使用列表向后打印字母表时缺少'a'
- 警告:数组"字母表"由括号字符串文本初始化
- 如何检查字符是否是某个字母表中的字母
- 为什么在此 C 代码中将字母表拆分为多个范围?
- c++如何确定字母表中一个单词是否在另一个单词之前
- 计算C++中每个字母表的出现次数
- 求字母表{a,b,c}上长度为n的字符串w的个数
- 如何检查字母表中的字母在文本文件中出现的次数C++
- 将莫尔斯值解码为字母表
- 在 C 语言中,求解从字母表中输入的整数并重复循环
- 迭代C/C++中的字母表
- 制作一个程序来计算字母表中每个字母的出现次数
- C++编程中的字母表到星形
- 按字母表对字符串数组进行排序并显示值
- 如何在c++中检查字符串是否包含字母表中的每个字母