迭代C/C++中的字母表
Iterate alphabet in C/C++
如何将以下代码转换为C/C++?
string alphabet = "abcdefghijklmnopqrstuvwxyz";
foreach(char c in alphabet)
{
// Do something with the letter
}
我想循环到字母表中,并在按下按钮时打印每个字符。就像你在使用Xbox/PS3控制器时如何输入角色一样。你滚动到整个字母表,然后按下一个按钮进行输入。
基本上,这是在微控制器(mbed)环境中使用的。我只需要知道如何在C/C++中创建正确的循环逻辑。
#include <string>
#include <algorithm>
void doSomething( const char& );
int main() {
std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
std::for_each( alphabet.begin(), alphabet.end(), &doSomething);
}
或
#include <string>
#include <boost/foreach.hpp>
int main() {
std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
BOOST_FOREACH( char c, alphabet) {
//do something
}
}
使用C++2011
#include <string>
#include <algorithm>
int main() {
std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
std::for_each( alphabet.begin(), alphabet.end(),[](const char& c){ /*do something*/} );
}
甚至
#include <string>
int main() {
std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
for( char c : alphabet) {
//do something
}
}
编辑:你在编辑中提到了在嵌入式环境中工作的愿望
int main() {
const char* alphabet = "abcdefghijklmnopqrstuvwxyz";
for( char* ptr = alphabet; *ptr!=' '; ++ptr) {
//do something (*ptr)
}
}
第2版:
如果您知道您正在使用类似ASCII 的东西
int main() {
for( char l = 'a'; l<='z'; ++l) {
//do something (l)
}
}
您应该决定使用哪种语言;C和C++是两种不同的语言,所以这两种语言没有一个单一的答案。
在现代C++中:
for (auto c : alphabet)
{
//do something with letter
}
在老派C++中,有各种选择;最不难看的可能是
for (size_t i = 0; i < alphabet.size(); ++i)
{
char c = alphabet[i];
//do something with letter
}
在C中,它取决于string
是什么,因为没有具有该名称的标准类型。如果是传统的零终止字符数组:
char const * alphabet = "abcdefghijklmnopqrstuvwxyz";
然后类似于:
for (char const * p = alphabet; *p; ++p)
{
char c = *p;
// do something with letter
}
#include <iostream>
#include <string>
int main ()
{
std::string str ("abcdefghijklmnopqrstuvwxyz");
for ( std::string::iterator itr=str.begin(); it!=str.end(); ++it)
{
//do something
}
return 0;
}
相关文章:
- 如何在C++中移动字母表中的字母?
- 循环回到z之后的字母表的开头
- C 分类字符串按大小和字母表
- 我在使用布尔函数时遇到问题,其中用户输入两个字母并输出字母表中最高的字母
- 使用列表向后打印字母表时缺少'a'
- 警告:数组"字母表"由括号字符串文本初始化
- 如何检查字符是否是某个字母表中的字母
- 为什么在此 C 代码中将字母表拆分为多个范围?
- c++如何确定字母表中一个单词是否在另一个单词之前
- 计算C++中每个字母表的出现次数
- 求字母表{a,b,c}上长度为n的字符串w的个数
- 如何检查字母表中的字母在文本文件中出现的次数C++
- 将莫尔斯值解码为字母表
- 在 C 语言中,求解从字母表中输入的整数并重复循环
- 迭代C/C++中的字母表
- 制作一个程序来计算字母表中每个字母的出现次数
- C++编程中的字母表到星形
- 按字母表对字符串数组进行排序并显示值
- 找出字母表中一个字母对应的数字
- 土耳其字母表的凯撒密码解密