//实现字符串的查找、删除、替换
# include<stdio.h>
# include<string.h>
//字符串的查找
int find(char *str1,char *str2)//在str1中寻找str2
{
int len1=strlen(str1);
int len2=strlen(str2);
int i=0,index;
if(len1<len2)
return -1;//查找失败
else
{
index=0;
for(i=0;i<len1;i++)
{
if(str1[i]==str2[index])
{
index++;
if(index==len2)
return i-len2+1;//返回第一次碰到str2的索引
}
else
{
index=0;
}
}
return -1;
}
}
//字符串的删除
char* delet(char* str,int start,int step)//在str1中删除从start到start+step的子串
{
int len=strlen(str);
int i=0;
if(len<start+step)
return NULL;//char *返回值NULL
else
{
for(i=start;i<len-step;i++)
{
str[i]=str[i+step];
}
str[len-step]='\0';//末尾补0,补全新的字符串
return str;
}
}
//字符串的替换
char *replace(char *str1,int start,char *str2)
{
int len1=strlen(str1);
int len2=strlen(str2);
int i=0,index=0;
if(len1<start+len2)
return NULL;
else
{
for(i=start;i<start+len2;i++)
{
str1[i]=str2[index++];
}
str1[len1]='\0';
return str1;
}
}
int main()
{
char str1[40];
char str2[40];
//删除重复子串
while(scanf("%s%s",str1,str2)!=EOF)
{
int t=find(str1,str2);
// printf("%d\n",t);
while(t!=-1)
{
//删除
char *p=delet(str1,t,strlen(str2));
t=find(p,str2);
}
printf("%s\n",str1);
}
return 0;
}
字符串的查找、排序、删除
最新推荐文章于 2021-10-16 17:42:40 发布