gpt4 book ai didi

C++检查带有零和空值的数组的长度

转载 作者:行者123 更新时间:2023-11-28 07:56:20 25 4
gpt4 key购买 nike

我有一个 int 数组,比方说... 1000 个元素。用户输入 128 并将数组填充为 821。在说之前,让我先说,为了其他功能的简单性,它必须向后。为了获得我使用的长度

    int count = 0;
for (int i = 0; array1[i] != '\0'; ++i)
{
count++;
}

这很好用。直到他们输入一个带有 0 的数字,例如 0 或 100。数组填充为 001,但测试立即停止它,因为 0 等于 '\0'

我不能使用 sizeof(array1)/sizeof(*array1),因为当我去打印数组时,我得到了大量的零,后面跟着数字。它打印正确,但不是我想要的。

有什么解决办法吗?

最佳答案

我认为更好的方法是在使用之前用无效值(例如-1)填充整个数组。根据您的描述,“无效”可以是除 0-9 以外的任何值。

memset(array1, -1, sizeof(array1));
// doing things

为什么不将数字保存为字符,因为它们来自用户输入?只需使用“0”而不是“\0”来表示零,这样就没有问题了。如果你保证数组末尾总是有 '\0',你甚至可以使用 strlen 直接获取长度:

// array size is 1001 instead of 1000 to reserve a '\0' in the end
char array1[1001] = {'8', '2', '1'}
size_t count = strlen(array1);

关于C++检查带有零和空值的数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12634698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com