| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1967 人关注过本帖, 1 人收藏
标题:[讨论]如何替换字符串?(效率)
取消只看楼主 加入收藏
nap
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-20
收藏(1)
 问题点数:0 回复次数:3 
[讨论]如何替换字符串?(效率)

每次给你三个字符串A,B,C,你要把A里面的B全部用C替换.(B在A里面出现的顺序替换)
每三行分别输入A,B,C.(A,B,C的长度都小于256)
输出替换后的字符串.如:
AaaaaDFaA
a
U

输出:
AUUUUDFUA

我是这么做的:
#include<stdio.h>
#include<string.h>
main()
{
int i,j,k,n,m,q,p,f;
char a[257],b[257],c[257];
while(gets(a))
{
gets(b);
gets(c);
m=strlen(b);/*算出长度*/
for(i=0;a[i]!='\0';i++)
{ q=i;
for(j=i,p=0;p<m;p++)
{ if(a[j]==b[p])
{ n=1;
j++;
}
else
{for(f=q;f<=j;f++)
printf("%c",a[f]);
n=0;
break;
}
}
if(n==1)
{ for(k=0;c[k]!='\0';k++)
printf("%c",c[k]);
i=j-1;
}
}
printf("\n");
}
return 0;
}
能帮我改进一下效率吗?或把你的程序让我看一下?谢!

搜索更多相关主题的帖子: 字符 效率 include int 
2006-04-29 17:56
nap
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-20
收藏
得分:0 
不好意思,应该是替换字符。用while(gets(a))是为了循环进行。现在最主要的是运算时间太长。因为题目
规定了256个字符所以可以用char a[257],b[257],c[257];
有什么好的办法既省时又省空间?辛苦了!帮帮忙,谢~。

2006-04-29 19:49
nap
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-20
收藏
得分:0 
谢谢!
2006-04-29 21:36
nap
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-4-20
收藏
得分:0 
[讨论]时间用的还是太长

时间用的还是太长。可能函数调用时用的时间太长。
#include <stdio.h>
#include<string.h>
int fun(char *A,char *B);

int main(void)
{
char A[256],B[256],C[256];
char *ptrA,*ptrB,*ptrC;
char *S;
int b;
while(gets(A)==A&& gets(B)==B&&gets(C)==C)
{
ptrA=A;
ptrB=B;
ptrC=C;
b=strlen(ptrB);
while(*ptrA)
{
if(fun(ptrA,ptrB))
{
ptrA+=b-1;
printf("%s",ptrC);
}
else
{
printf("%c",*ptrA);
}
ptrA++;
}

printf("\n");
}

return ;
}
int fun(char *A,char *B)
{
while(*A!=0&&*B!=0)
{
if(*A!=*B)return 0;
A++;B++;
}
return 1;
}

2006-04-30 11:08
快速回复:[讨论]如何替换字符串?(效率)
数据加载中...
 
   



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

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