本题要求定义一个函数,在字符串中查找字符,并定位在最后一次找到的位置。
char * match(char *s, char ch);
其中s是字符串首地址,ch是要查找的字符。要求函数在字符串s中查找字符ch,如果找到,返回最后一次找到的该字符在字符串中的位置(地址);否则,返回空指针NULL。
#include <stdio.h>
char *match(char *s, char ch);
int main(void )
{
char ch, str[80], *p = NULL;
scanf("%s", str);
getchar(); /* 跳过输入字符串和输入字符之间的分隔符 */
ch = getchar(); /* 输入一个字符 */
p = match(str, ch); /* 调用函数match() */
if( p != NULL ){ /* 找到字符ch */
printf("%s\n", p);
}else{
printf("Not Found.\n");
}
return 0;
}
/* 请在这里填写答案 */
char *match(char *s,char ch)
{
char *p=NULL;
while(*s!='\0')//当字符串未结束时就循环
{
if(*s==ch)//如果当前字符与要找的字符相同,则将指针p指向当前位置
p=s;
s++;
}
return p;//返回指针 p。如果 p 是 NULL,这意味着字符 ch 没有在字符串 s 中出现,所以返回值将是 NULL。如果 p 不是 NULL,则返回的是字符 ch 的第一个出现的地址
}
program
r
ram
program
x
Not Found.