填空题 以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char*fun(char *str,char c)
int n=0; char *p=str;
if(p!=NULL)
while(p[n]!=c && p[n]!='/O')n++;
if(p[n]='/0') return NULL;
return( 【12】 );


  • 1、
【正确答案】 1、&P(n)或p+n    
【答案解析】因为n被初始化为0、p被初始化指向str所指字符串的首地址,所以while循环的功能是从str所指字符串的第1个字符开始比较,若等于c或等于字符串结束符'/0'就跳出循环。故循环结束后,若p[n]为'/0',则证明str所指字符串不包含c中的字符,应该返回NULL,否则应该返回p[n]的地址值。返回NULL在第2条if语句中已经实现,所以我们应该填入的表达式为p[n]的地址值, 即&p[n]或p+n。