那样的效率是最高的,但是生成图又太麻烦了哈~~
淘宝杜琨
如果只是输出
#include <stdio.h>
int fun(char *A,char *B);
int main(void)
{
char A[256],B[256],C[256];
char *ptrA,*ptrB,*ptrC;
char *S;
while(gets(A)==A&& gets(B)==B&&gets(C)==C)
{
ptrA=A;
ptrB=B;
ptrC=C;
int 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;
}
#include <stdio.h>
#include <conio.h>
int main(void)
{
char stra[20], ca, cb;
int ia;
fgets(stra, 19, stdin); //主串
fflush(stdin);
ca = getchar(); //被替换字符
fflush(stdin); //替换字符
cb = getchar();
for (ia = 0; stra[ia] != '\0'; ia++)
{
if (stra[ia] == ca)
{
stra[ia] = cb;
}
}
puts(stra);
getch();
return 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;
}