c语言如何将一个字符串里某些字符代替另外一个字符串来
例如字符串”abc1234567890efg“中1234567890用另外一个字符串“0123456789”里替换...
例如字符串”abc1234567890efg“中1234567890用另外一个字符串“0123456789”里替换
展开
3个回答
展开全部
几天前回答过一样的问题,数字也可以的,我测试过了。长度不同也可以。
#include <stdio.h>
#include <string.h>
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<lengthch;i++)
{ if(*q!=change[i])
{ flag=0;
break;
}
else q++;
}
if(flag==1)
{ for(i=0;i<lengthre;i++)
s[j++]=replace[i];
p=q-1;
}
}
else s[j++]=*p;
}
s[j]='\0';
puts(s);
}
#include <stdio.h>
#include <string.h>
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<lengthch;i++)
{ if(*q!=change[i])
{ flag=0;
break;
}
else q++;
}
if(flag==1)
{ for(i=0;i<lengthre;i++)
s[j++]=replace[i];
p=q-1;
}
}
else s[j++]=*p;
}
s[j]='\0';
puts(s);
}
参考资料: http://zhidao.baidu.com/question/406414478.html?oldq=1
展开全部
用char *strstr(const char *str, const char *strSearch ); 函数找到源字符串中,你要替换的字符串。该函数返回要替换的字符串的指针。然后将替换的字符串赋值给该指针的位置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-04-07
展开全部
替换和被替换的字符串长度相等?代码:
#include <stdio.h>
#include <string.h>
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;
}
#include <stdio.h>
#include <string.h>
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;
}
追问
是的,两个字符串长度相等
追答
那这样就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询