以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如;str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。

admin2009-01-15  54

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

选项

答案&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。
转载请注明原文地址:https://kaotiyun.com/show/abXp777K
0

相关试题推荐
最新回复(0)