【发布时间】:2016-04-20 21:17:00
【问题描述】:
#include <stdio.h>
#include <string.h>
int main ()
{
const char str[] = "http://www.tutorialspoint.com";
const char ch = '.';
char *ret;
ret = strchr(str, ch);
printf("String after |%c| is - |%s|\n", ch, ret);
return(0);
}
此代码是从tutorialspoint 复制的。
据我了解,ret 是一个指向字符的指针。要使用指针所指向的值/内容,我会使用*ret。
但是,在本例中,只需调用ret,printf() 即可打印出.tutorialspoint.com。为什么不使用*ret来获取.tutorialspoint.com,因为字符串是ret中的值,*ret可以访问?
【问题讨论】:
-
如果字符不在字符串中,则调用未定义的行为。
-
为了避免它,他必须使用
strchrnul