| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:这种问题 害我好多ACM的题目做不了,请大师指教,谢谢
只看楼主 加入收藏
qqoo6789
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-7-11
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:9 
这种问题 害我好多ACM的题目做不了,请大师指教,谢谢
/**********************************************************************
从一个字符串中,删去某个字符.
有多个测试用例,
每个测试用例占两行,第一行是要删除的字符,第二行是一个字符串。
***********************************************************************/




# include <stdio.h>
# include <string.h>
int main ()
{
    char ch_delete;//该删去的字符
    int i;
    int len;//字符长度
    while(scanf("%c",&ch_delete)!=EOF)
    {
        char ch[1024];
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch[i]!=ch_delete)
                printf("%c",ch[i]);
        }
        printf("\n");
    }
    return 0;
}
/**********************************************************************
问题就是 在于这个 多次测试。
为什么第一次测试时 正确的
后面的测试就不对了。
一下这个是正确的输入与输出

f                  -------------------表示要删除的字符是  f
aassddffbbcc       -------------------表示在该字符串里 删除f
aassddbbcc         -------------------输出结果,已删去 f


到底循环执行时  有什么 还要处理的?
**********************************************************************/
搜索更多相关主题的帖子: include 字符串 
2013-12-06 14:48
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:2 
while(scanf("%c",&ch_delete)!=EOF)
    {
        char ch[1024];//这个放在while里面定义不对吧?
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch[i]!=ch_delete)//这里只是查找了。并没有进行删除工作啊。
                printf("%c",ch[i]);
        }
        printf("\n");

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-06 15:00
qqoo6789
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-7-11
收藏
得分:0 
回复 2楼 so_love
while(scanf("%c",&ch_delete)!=EOF)
    {
        char ch[1024];//这个放在while里面定义不对吧?            ------------------------------这样定义没问题的。
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch!=ch_delete)//这里只是查找了。并没有进行删除工作啊。———————————————这里进行判断,只输出除ch_delete以外的字符
                printf("%c",ch);         ———————————————(这是一道题目,不是真正的删除,只是让输出的结果  少了ch_delete字符)
        }
        printf("\n");
2013-12-06 15:24
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
while(scanf("%c",&ch_delete)!=EOF)
    {
        char ch[1024];//没说不对。只是觉得不规范。
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch[i]!=ch_delete)//ch是一个字符数组。。。
                printf("%c",ch[i]);        
        }
        printf("\n");

这回要是还吧u型  你就找大神吧,,,菜鸟路过。。。

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-12-06 15:32
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:6 
scanf("%s",ch);
这一句有一个回车符要处理.
你在后面加一句getchar();
改了之后, 代码是OK了,
但是,你确定题目要求只要打印, 不要删除?.
2013-12-06 16:01
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:6 
程序代码:
# include <stdio.h>
# include <string.h>
int main ()
{
    char ch_delete;//该删去的字符
    int i;
    int len;//字符长度
    while(scanf("%c",&ch_delete)!=EOF)
    {
        char ch[1024];
        scanf("%s",ch);
        len=strlen(ch);
        for(i=0;i<len;i++)
        {
            if(ch[i]!=ch_delete)
                printf("%c",ch[i]);
        }
        while(getchar()!='\n')//在这里加上这个就可以了
            continue;
        printf("\n");
    }
    return 0;
}

kajj->1314 努力每一天。
2013-12-06 17:16
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
收藏
得分:6 
    fflush(stdin);直接在那里加上这个也可以,清除缓存;

kajj->1314 努力每一天。
2013-12-06 17:22
qqoo6789
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-7-11
收藏
得分:0 
回复 5楼 pangshch
真的可以了,太谢谢你了,这个getchar(),是怎么处理的?他的原理是怎样?
2013-12-06 21:59
qqoo6789
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-7-11
收藏
得分:0 
回复 6楼 kajj_0321
while(getchar()!='\n')
      continue;


真的解决了我的问题。太感谢了,请问这句话的 原理是?
2013-12-06 22:01
qqoo6789
Rank: 1
等 级:新手上路
帖 子:34
专家分:7
注 册:2013-7-11
收藏
得分:0 
回复 7楼 kajj_0321
谢谢,又学到东西了。这个函数真不错。fflush(stdin);
2013-12-06 22:04
快速回复:这种问题 害我好多ACM的题目做不了,请大师指教,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021758 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved