几天前回答过缓拍一样的问题,数字也可以扰闷羡的,我测试过罩启了。长度不同也可以。
#include
#include
main()
{ char string[300],change[50],replace[50];
char s[300];
char *p,*q;
int i,lengthch,lengthre,flag,j=0;
printf("Input a string:");
gets(string);
printf("Input the string you want to be changed:");
scanf("%s",change);
printf("Input the string you want to replace:");
scanf("%s",replace);
lengthch=strlen(change);
lengthre=strlen(replace);
puts(string);
p=q=string;
for(;*p;p++)
{ if(*p==change[0])
{
flag=1;
q=p;
for(i=0;i
{ flag=0;
break;
}
else q++;
}
if(flag==1)
{ for(i=0;i
p=q-1;
}
}
else s[j++]=*p;
}
s[j]='\0';
puts(s);
}
用char *strstr(const char *str, const char *strSearch ); 函数找到源字符串中,你要替换的字符串。该函数裂衡咐返回要替换的字符串的指针。然后将替肆纯换的字符拦中串赋值给该指针的位置。
替换和被替换的字符串长度相等?代码:
#include
#include
int main()
{
char data[] = "世携abc1234567890efg";
char *from = "或芹1234567890";
char *to = "0123456789";
char *p = strstr(data, from);
if(p){
memcpy(p, to, strlen(to));
}
printf("%s\n"搜团伏, data);
return 0;
}