gpt4 book ai didi

c - 为了找到结束字符,这个 C 代码块做了什么?

转载 作者:太空宇宙 更新时间:2023-11-04 05:03:30 25 4
gpt4 key购买 nike

char *start = str;
char *end = start + strlen(str) - 1; /* -1 for \0 */
char temp;

如何找到字符串的结尾?如果字符串是 giraffestart 保存该字符串,那么您有:

char *end = "长颈鹿"+ 7 - 1;

这如何为您提供长颈鹿的最后一个字符? (e)

最佳答案

下面是 “giraffe” 在内存中的布局方式,每个数字都给出了该字符的索引。

g i r a f f e \0
0 1 2 3 4 5 6 7

最后一个字符 e 在索引 6 处。str + 6,或者写成 &str[6],产生最后一个地址特点。这是最后一个字符的地址,而不是字符本身。要获取字符,您需要取消引用该地址,因此 *(str + 6)str[6](添加 *,或删除 &)。

在英语中,这里有多种访问字符串部分的方法:

 str ==   str + 0  == &str[0]        address of character at index 0
== str + 6 == &str[6] address of character at index 6
*str == *(str + 0) == str[0] character at index 0 ('g')
== *(str + 6) == str[6] character at index 6 ('e')

关于c - 为了找到结束字符,这个 C 代码块做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21895607/

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