| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 762 人关注过本帖
标题:一直答案错误,求解答啊
只看楼主 加入收藏
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
题目中给你的实例可不足以用来做测试数据。
你那个代码试一下下面的两个很简单数据就找到错误了:
aaa
a

aaa
aaa

我自己写一个试试~~
2011-08-04 20:53
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:2 
程序代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) {
    char str[501], sub[501];
    int rLen, bLen, i;
   
    gets(str);
    gets(sub);
    rLen = strlen(str);
    bLen = strlen(sub);
    for(i = 0; i <= rLen - bLen; ) {
        if(!strncmp(str + i, sub, bLen)) {
            memmove(str + i, str + i + bLen, strlen(str + i + bLen));
            *(str + (rLen -= bLen)) = '\0';
            i = 0;
        } else
            i++;
    }
    puts(str);
    system("pause");
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 lz1091914999 于 2011-8-4 21:09 编辑 ]

My life is brilliant
2011-08-04 20:53
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

int locate(char * s, char *ss) {
    int i = 0, j = strlen(s) - strlen(ss) + 1;
    for (i = 0; i < j; i++) {
        if (memcmp(&s[i], ss, strlen(ss)) == 0) {
            return i;
        }
    }
    return -1;
}

int main(int argc, char* argv[]) {
    char s[501] = {0}, ss[501] = {0};
    int i = 0;
    gets(s);
    gets(ss);
    while ((i = locate(s, ss)) != -1) {
        s[i] = 0;
        strcat(s, &s[i + strlen(ss)]);
    }
    printf("%s\n", s);
    return 0;
}
2011-08-04 21:22
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:2 
int f(int n,char *a,char *b)
{int i;
char m[100],p[100];
for(i=0;i<n;i++)
m[i]=a[i];
m[i]=0;
strcat(m,b);
for(i=0;i<n+strlen(b);i++)
p[i]=a[i];
p[i]=0;
if(strcmp(m,p))
return 0;
return 1;}
int main()
{char a[100],b[100],m[100];
gets(a);
gets(b);
int i,j,p=0,n=strlen(b);
for(i=0;a[i];i++)
{if(f(i,a,b))
{i=i+n-1;}
else m[p++]=a[i];
}
m[p]=0;
puts(m);
system("pause");
}
2011-08-04 21:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:2 
程序代码:
#include<stdio.h>
#include <string.h>
char src[500] = {0};
char sub[500] = {0};
char res[500] = {0};
int main()
{
    while(NULL != gets(src))
    {
        gets(sub);
        char *pos = NULL;
        int sublen = strlen(sub);
        while(NULL != strstr(src,sub))
        {
            int i = 0;
            char *r = res;
            while(NULL != (pos = strstr(src+i,sub)))
            {
                int len = pos - (src+i);
                strncpy(r,src+i,len);
                r += len;
                i += (len+sublen);
            }
            strcat(res,src+i);
            memset(src,0,sizeof(src));
            strncpy(src,res,strlen(res));
            memset(res,0,sizeof(res));
        }
        puts(src);
    }
    return 0;
}
这个可以AC

                                         
===========深入<----------------->浅出============
2011-08-06 16:58
快速回复:一直答案错误,求解答啊
数据加载中...
 
   



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

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