-1
所以我们可以说我有一个字符数组,称为str大小为12,并且我在数组中输入1000110,其中str [0] = 1,str [1] = 0等等...我通过在for循环中打印它来测试数组,它工作。获取字符数组中的初始值的长度
然后我想要统计在阵列中启动了多少个整数。在这种情况下,该值应为:7
这里是我的代码,无论出于何种原因,输出为1,而不是7
int length;
length = 12;
int actual_length()
{
int act_length = 0;
int i;
for (i = 0; i < length; i++)
{
if (str[i] == 0 || str[i] == 1)
{
act_length++;
}
}
printf("TEST ACTUAL LENGTH: %d\n", act_length);
return act_length;
}
我也试过
(int)str[i]
为比较,但这并没有改变结果。
*您不能*测试是否数组被从中读取初始化。如果您读取*未初始化的*部分*,则根据C标准,您的程序的行为是** undefined **。 – EOF 2014-10-19 20:26:06
在将'1'和'0'放入它们之前,它们被初始化为*吗?如果没有,那么你将在该循环中从未初始化的内存中读取,这是不好的。如果它们初始化为'0',那么你的长度总是为'12',这里。 – 2014-10-19 20:27:07
Rether而不是讨论如何初始化'str',显示代码。 – chux 2014-10-19 20:54:25