2 trybye TRYBYE 于 2017.08.10 23:05 提问

关于这句代码是什么意思,有什么作用呢

char *pos = strchr(buf + 2, '\0');检测NULL,不是返回空吗

1个回答

fight_in_dl
fight_in_dl   Ds   Rxr 2017.08.11 05:13

strchr函数当查找失败时,返回NULL。
当查找成功时,返回一个指针,该指针指向找到的字符。

题目中的代码,查找字符串结束字符'\0',是能够成功的,所以并不返回NULL,
而是返回指向'\0'字符的指针。

看一下例子:

#include <stdio.h>   
#include <string.h>   

int main() {
    char buf[] = "hello"; //字符串末尾隐含'\0'
    char *pos = strchr(buf + 2, '\0'); 
    printf("%p\n",pos);    //打印该指针值
    printf("%d\n",*pos);  //注意和上一行的区别
    return 0;
}

可以运行此程序,观察输出。

如果对您有帮助,请采纳答案好吗,谢谢!

caozhy
caozhy 回复向大佬低头: 这个trybye我从来没看过他采纳过回答。答主的热心估计得喂狗了。
4 个月之前 回复
qq_23126581
qq_23126581 建议楼主采纳 这个答案。
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!