gpt4 book ai didi

字符数组操作

转载 作者:行者123 更新时间:2023-11-30 17:09:52 26 4
gpt4 key购买 nike

任何人都可以向我解释一下,如果我有两个字符数组 char array1[] 和 char array2[] 来比较这两个数组中的两个字符串,这是什么意思

if (array1[j] == array2[j-i])

if (array2[j-i] == '\0')

我对 [j-i] == j 和 [j-i] == '\0' 部分感到困惑。这可能是一个非常愚蠢的问题,但我对编程很陌生。谢谢您

最佳答案

编辑:让刚接触该线程的人清楚(在上面的评论中)

是的。如果 array1 的第 i 个索引对应于 array2 的第 0 个索引。那么 array1 的第 (i+j) 个索引对应于 array2 的第 (0+j)=j 个索引。换句话说,如果您位于 array1 中的索引 k,则需要从 k 中减去 i 才能得到 array2 中相应的索引。

编辑结束

“这意味着什么”是什么意思?

为了检查 array1 是否等于 array2,您可以迭代其中一个字符串并检查字符是否相等:

int equals(char *array1, char *array2, int length) {
int i;
for(i = 0; i < length; i++) {
//make sure that the char in array1 is equal
//to the char in array2
if(array1[i] != array2[i])
return 0;
//if array1 is done, then you no longer need
//to check (and you know array2 is done too
//from previous if statement)
if(array1[i] == '\0'
break;
}
return 1;
}

请注意,长度应该是 array1 和 array2 两个长度中较小的一个,以避免对内存的错误访问。您可能知道那是哪一个,但如果没有更多背景信息,我无法给出更具体的答案。

关于字符数组操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33115955/

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