我在Google上找到了类似的东西:

for(int i=0;someString[i];++i){
    //code to do
}


但是我不知道someString [i]是什么意思。它不应该是布尔表达式,那么编译器如何知道何时结束循环?也许这是一个琐碎的问题,但是我对C ++还是很陌生。

谢谢你向前

最佳答案

如果someString是包含可以转换为bool的所有内容的数组,则访问其元素将作为条件。例如,如果它是一个char数组,则'\0'上的所有元素栏都将求值为true。例如:

#include <iostream>

int main()
{
  char someString[] = {'h', 'e', 'l', 'l', 'o', '\0'};
  std::cout << std::boolalpha;
  for (auto c : someString)
    std::cout << bool(c) << std::endl;
}


您的循环将在遇到第一个伪造元素时停止。

关于c++ - 条件字符串的C++ [i],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20871244/

10-11 18:47