检查c数组中添加了多少项?

时间:2016-08-31 13:20:23

标签: c dev-c++

我已经声明了一个长度为100的c数组。现在,我将char放入其中:

char northl2[100];

northl2[0]='1';
northl2[1]='1';

如何计算放入数组的1个程序的数量?

3 个答案:

答案 0 :(得分:0)

您可以使用默认值初始化数组,例如0

char northl2[100] = { 0 };

然后在添加之后,您的'1'字符会循环播放并为您找到的每个'1'增加一个计数器变量。

答案 1 :(得分:0)

您可以使用这样的循环:

char northl2[100] = {0};

northl2[0]='1';
northl2[1]='1';
int count_one = 0;
for (int i = 0;i<100;++i)
{
    if (northl2[i] == '1')
    {
        ++count_one;
    }
}
std::cout << count_one;

在这种情况下打印2,因为有2 1个。代码遍历数组的每个元素,检查它的值,并递增其计数。 char northl2[100] = {0};默认将每个元素设置为0.如果需要不同的值,请使用循环:

char northl2[100];
int main()
{
    int count_one = 0;
    for (int i = 0; i< 100;++i)
    {
         northl2[i] = 'C'; //Or whatever char other than '1'
    }
    northl2[0]='1';
    northl2[1]='1';
    for (int i = 0;i<100;++i)
    {
        if (northl2[i] == '1')
        {
            ++count_one;
        }
    }
}

另外,在循环为所有元素分配值后,不要忘记分配1,否则将覆盖

答案 2 :(得分:0)

保持数组中没有sentinel值的实际元素数量的唯一方法是定义一个变量,该变量将存储数组中实际值的数量。

考虑到这个声明

char northl2[100];

是块作用域声明,然后数组未初始化并具有不确定的值。

如果您将字符数组中的值存储为字符串(即数组具有标记值'\0'),那么您只需应用标准C函数std::strlen

您可以按以下方式定义数组

char northl2[100] = {};

最初将数组的所有元素初始化为零。

在这种情况下你可以写

char northl2[100] = {};

northl2[0] = '1';
northl2[1] = '1';

//...

std::cout << "The number of added values to the array is " 
          << std::strlen( northl2 )
          << std::endl;

前提是按顺序添加值,数组中没有间隙。