ACM经典算法之字符串处理:字符串替换语法:replace(char str[],char key[],char swap[]);
參数:
str[]:在此源字符串进⾏替换操作
key[]:被替换的字符串,不能为空串
swap[]:替换的字符串,能够为空串,为空串表⽰在源字符中删除key[]
返回值:null
注意:默认str[]长度⼩于1000,如否,⼜⼀次设定设定tmp⼤⼩
须要 string.h
源程序:
#include<stdio.h>
#include<string.h>
void replace(char str[],char key[],char swap[])
{
int l1,l2,l3;
int i,j;
int flag;
char tmp[1000];
l1=strlen(str);
l2=strlen(key);
l3=strlen(swap);
for(i=0;i<=l1-l2;i++)
{
flag=1;
for(j=0;j<l2;j++)//注意是⼩写的l⽽不是数字1
{
if(str[i+j]!=key[j])
{
flag=0;
break;
}
字符串截取 c++}
if(flag)
{
strcpy(tmp,str);
strcpy(&tmp[i],swap);
strcpy(&tmp[i+l3],&str[i+l2]);
strcpy(str,tmp);
i+=l3-1;
l1=strlen(str);
}
}
}
int main()
{
char str[] ="I have a dream";
char key[] ="have";
char swap[]="Love";
printf("原字符串是%s\n被替换的⼦串%s,替换为%s\n",str,key,swap);
replace(str,key,swap);
puts("替换后的字符串是:");
puts(str);
return 0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论