在C/C++中迭代字母表

use*_*120 -2 c c++

如何将以下代码翻译成C/C++?

string alphabet = "abcdefghijklmnopqrstuvwxyz";

foreach(char c in alphabet)
{
    // Do something with the letter
}
Run Code Online (Sandbox Code Playgroud)

我想循环进入字母表,并在按下按钮时打印每个字符.就像在使用Xbox/PS3控制器时输入字符一样.您滚动到整个字母表集,然后按一个按钮进行输入.

基本上,这是在微控制器(mbed)环境中使用.我只需要知道如何在C/C++中循环创建正确的逻辑.

Kit*_*YMG 13

#include <string>
#include <algorithm>

void doSomething( const char& );

int main() {
  std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
  std::for_each( alphabet.begin(), alphabet.end(), &doSomething);
}
Run Code Online (Sandbox Code Playgroud)

要么

#include <string>
#include <boost/foreach.hpp>

int main() {
  std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
  BOOST_FOREACH( char c, alphabet) {
    //do something
  }
}
Run Code Online (Sandbox Code Playgroud)

用C++ 2011

#include <string>
#include <algorithm>

int main() {
  std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
  std::for_each( alphabet.begin(), alphabet.end(),[](const char& c){ /*do something*/} );
}
Run Code Online (Sandbox Code Playgroud)

甚至

#include <string>

int main() {
  std::string alphabet = "abcdefghijklmnopqrstuvwxyz";
  for( char c : alphabet) {
    //do something
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:您在编辑中提到了在嵌入式环境中工作的愿望

int main() {
  const char* alphabet = "abcdefghijklmnopqrstuvwxyz";
  for( char* ptr = alphabet; *ptr!='\0'; ++ptr) {
    //do something (*ptr)
  }
}
Run Code Online (Sandbox Code Playgroud)

EDIT2:

如果你知道你正在使用像ASCII这样的东西

int main() {
  for( char l = 'a'; l<='z'; ++l) {
    //do something (l)
  }
}
Run Code Online (Sandbox Code Playgroud)