ai didi

c - 将字符串设置为 '\0'

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

我正在查看一些现有代码并添加了一些 printf 行。有一个字符串 cp "TZ=test"

cp = strchr(str, '=');
printf("Text: %s\n",cp);
printf("Text cp+1: %s\n",cp+1);
*cp = '\0';
printf("Text: %s\n",cp);
printf("Text cp+1: %s\n",cp+1);

输出是:

Text: =test
Text c+1: test
Text:
Text c+1: test

我理解前两个测试,但为什么第四个打印“测试”,即使 *cp 之前设置为 '\0'?

最佳答案

与其他一些语言不同,C 不知道字符串是什么,它只知道它在哪里结束,所以它从你给它的指针打印。

    [=test\0]
1: ^start here
^ end at \0
2: ^start here
^ end at \0

[\0test\0]
3: ^start here, it's \0, so stop
4: ^start here
^ end at \0

关于c - 将字符串设置为 '\0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163996/

24 4 0
文章推荐: objective-c - 为什么我总是得到相同的随机值?
文章推荐: python - 在 pandas 数据透视表中格式化聚合 timedelta
文章推荐: Python - 多个文件比较后,将结果写入多个文件
文章推荐: c - 理解 C 中的指针
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com