问题 填空题

以下函数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】 ); }

答案

参考答案:&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。

单项选择题
问答题 简答题