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

Check how many items added in c array?

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

char northl2[100];

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

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

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

char northl2[100] = { 0 };

然后在你 添加 之后你的 '1' 字符进入循环并为你找到的每个 '1' 增加一个计数器变量。

您可以使用这样的循环:

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,否则,它们将被覆盖

保持数组中没有标记值的实际元素数量的唯一方法是定义一个变量来存储数组中实际值的数量。

考虑到如果这个声明

char northl2[100];

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

如果您将值作为字符串存储在字符数组中(即该数组具有标记值 '[=13=]'),那么您可以只应用标准 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;

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