救救孩子吧
char *match(char *s, char ch){
char * result = NULL;
while (*s != NULL)
{
if (*s == ch)
{
result = s;
}
*s++;
}
return result;
} 本帖最后由 风过无痕1989 于 2020-11-16 17:50 编辑
下面这个程序,找到字符后输出是正常的,但没有找到字符,输出是空行,而不是“Not Found"
#include <stdio.h>
char *match(char *s, char ch);
int main(void)
{
char ch, str, *p = NULL;
scanf("%s", str);
getchar(); /*跳过输入字符串和输入字符之间的分隔符*/
ch = getchar(); /*输入一个字符*/
p = match(str, ch); /*调用函imatch()*/
if (p != NULL) /*找到字符ch*/
{
printf("%s\n", p);// 输出找到字符之后的字符串
}
else
{
printf("Not Found.\n");
return 0;
}
}
char *match(char *s, char ch)
{
while (*s != NULL)
{
if (*s == ch)
{
break;
return s;
}
*s++;
}
} 风过无痕1989 发表于 2020-11-16 16:33
下面这个程序,找到字符后输出是正常的,但没有找到字符,输出是乱码,而不是“Not Found",调试了好几个小 ...
不是
我不知道怎么找到最后一个字符
比如 program找到的是第二个r
输出ram
乱码最后应该要加return null 天神下饭... 发表于 2020-11-16 16:50
不是
我不知道怎么找到最后一个字符
比如 program找到的是第二个r
正像你说的,加个 return null ,程序就正常了 不行,加了以后,无论找到找不到,输出都是 Not Found 风过无痕1989 发表于 2020-11-16 17:06
不行,加了以后,无论找到找不到,输出都是 Not Found
char *match(char *s,char ch)
{
while(*s!='\0')
if(*s==ch)
return (s);
else
s++;
return(NULL);
} 风过无痕1989 发表于 2020-11-16 17:06
不行,加了以后,无论找到找不到,输出都是 Not Found
但是这样写你输入program
输出就是rogram了 天神下饭... 发表于 2020-11-16 17:17
但是这样写你输入program
输出就是rogram了
怎么改都不对,上面的程序,我改回来了,找到了,输了正常,没找到,输出空行
页:
[1]