鱼C论坛

 找回密码
 立即注册
查看: 1321|回复: 8

[已解决]救救孩子吧

[复制链接]
发表于 2020-11-16 13:57:44 | 显示全部楼层 |阅读模式
5鱼币
最佳答案
2020-11-16 13:57:45
char *match(char *s, char ch)
{
        char * result = NULL; 
        while (*s != NULL)
        {
                if (*s == ch)
                {
                        result = s;
                }
                *s++;
        }
        return result;
}
1.PNG
2.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 13:57:45 | 显示全部楼层    本楼为最佳答案   
char *match(char *s, char ch)
{
        char * result = NULL; 
        while (*s != NULL)
        {
                if (*s == ch)
                {
                        result = s;
                }
                *s++;
        }
        return result;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 16:33:18 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-11-16 17:50 编辑

下面这个程序,找到字符后输出是正常的,但没有找到字符,输出是空行,而不是“Not Found"
#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);      /*调用函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++;
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-16 16:50:45 From FishC Mobile | 显示全部楼层
风过无痕1989 发表于 2020-11-16 16:33
下面这个程序,找到字符后输出是正常的,但没有找到字符,输出是乱码,而不是“Not Found",调试了好几个小 ...

不是
我不知道怎么找到最后一个字符
比如 program找到的是第二个r
输出ram
乱码最后应该要加return null
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 16:58:34 | 显示全部楼层
天神下饭... 发表于 2020-11-16 16:50
不是
我不知道怎么找到最后一个字符
比如 program找到的是第二个r

正像你说的,加个 return null ,程序就正常了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 17:06:23 | 显示全部楼层
不行,加了以后,无论找到找不到,输出都是 Not Found
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-16 17:13:02 From FishC Mobile | 显示全部楼层
风过无痕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);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-16 17:17:00 From FishC Mobile | 显示全部楼层
风过无痕1989 发表于 2020-11-16 17:06
不行,加了以后,无论找到找不到,输出都是 Not Found

但是这样写你输入program
输出就是rogram了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-16 17:57:24 | 显示全部楼层
天神下饭... 发表于 2020-11-16 17:17
但是这样写你输入program
输出就是rogram了

怎么改都不对,上面的程序,我改回来了,找到了,输了正常,没找到,输出空行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 13:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表