【发布时间】:2013-06-14 05:22:20
【问题描述】:
这是我所拥有的:
char* input = new char [input_max]
char* inputPtr = iput;
我想使用 inputPtr 来遍历输入数组。但是我不确定什么会正确检查我是否已经到达字符串的末尾:
while (*inputPtr++)
{
// Some code
}
或
while (*inputPtr != '\0')
{
inputPtr++;
// Some code
}
或者更优雅的选择?
【问题讨论】:
-
它们是等价的。当然,您必须确保数组中确实存在
\0。 -
这是一个关于你在数组中放入什么的问题。你确定你的数组中有一个
'\0'元素吗?如果有,你确定'\0'元素在数组的范围内吗? -
我是编程新手,如果我要问的内容是多余的,请原谅我是 '\0' == 0?
-
"is '\0' == 0" - 是的。 Look here.
-
@juanchopanza 那么是不是意味着while语句在解引用后首先检查inputPtr的值,然后再递增inputPtr中存储的内存地址??? (我对指针还是新手,所以当涉及到这些东西时我会感到困惑)
标签: c++ string loops pointers traversal