gpt4 book ai didi

清除不需要的值

转载 作者:行者123 更新时间:2023-11-30 19:34:46 26 4
gpt4 key购买 nike

我将从代码本身开始解释我的问题

void main()
{
char arr[50];
for ( int i = 0; i < sizeof(arr); i++ )
arr[i] = '0';

到目前为止,arr 的每个值持有的是 '0'

现在假设我填写了一些 arr值与字符,并得到以下

arr = { '0', '0', 'Z', '0', 'A', 'b', 'Q', '0', '0', ..... '0' };

现在,我想去掉 Q 之后的所有零。 ,因为它是最后一个非零值。

所以当我 printf ( " %s ", arr);我只得到 arr 的所有值作为返回直到 Q

我尝试使用memset() ,但显然我用错了它,或者它没有达到我的目的

最佳答案

从数组的最后一个索引开始递减,直到找到非 0 的字符。这是数组中最后一个非 0 的字符。要完全摆脱它们,我的建议是创建一个新数组。

这是一个例子,

注意:arrayLen是数组的长度:

int index;
for (i = arrayLen - 1; i >= 0; i--)
{

if (array[i] != '0')
{
index = i;
break;
}
}

char newArray [index+2];
for (i = 0; i < index+1; i++)
{
newArray[i] = array[i];
}
newArray[index+1] = '\0'

新字符串的字符串长度成为数组中 0 + 2. + 2 之前的最后一个字符的索引,因为其中一个索引是为空终止符保留的。然后,您可以使用它来循环仅将相关字符复制到新数组中。

如果这没有意义,请告诉我,我会更新它以解释更多信息!

关于清除不需要的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43431242/

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