gpt4 book ai didi

c - 这个函数会改变数组的大小吗?

转载 作者:行者123 更新时间:2023-12-02 09:31:55 24 4
gpt4 key购买 nike

所以我开始学习C。我正在学习经典的K&R书。书中它们的作用如下:

/*squeeze: delete all c from s */
void squeeze(char s[], int c)
{
int i, j;

for (i = j = 0; s[i] != '\0'; i++)
if (s[i] != c)
s[j++] = s[i];
s[j] = '\0';
}

我的问题是:squeeze()实际上改变了s[]中的字符数吗?看起来它所做的只是通过添加空字符来“切断”字符串的其余部分。数组中“\0”后面是否存在其他值?

最佳答案

c 中的字符串只是一个带有空终止符 \0 的字符数组,表示结束。字符在空终止符之后仍然可以存在,但任何使用 c 字符串的函数,即。 printfstrcpy 将使用空终止符来标记结束,因此它实际上会被视为 \0 之后没有任何内容。

关于c - 这个函数会改变数组的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32159636/

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