#include<stdio.h>
#include<string.h>
char *deletestr(char *pc1,char *pc2)
{
int i=0;
char *p;
char temp[20];
puts("输入字符串1:");
gets(pc1);
puts("输入字符串2:");
gets(pc2);
i=strlen(pc2);
while(p=strstr(pc1,pc2)) //p记录pc1中pc2出现的位置
{
*p='\0'; //截断pc1
strcpy(temp,p+i); //将pc2之后的内容储存到temp[20]
strcat(pc1,temp); //将temp中内容拼接到pc1
}
/* 假如pc1 = cdababcd, pc2 = ab, strstr之后,p指向cd^这个位置, *p= '\0',
pc1 = cd\0babcd,pc1被截断了,strcpy之后,temp = abcd,strcat后,pc1 = cdabcd,
从而ab被删除,第二个ab同理 */
return pc1;
}
int main()
{
char pc1[20];
char pc2[20];
printf("%s",deletestr(pc1,pc2));
return 0;
}
删除字符串str1中所有子串str2。如str1="abcdabac",str2="ab",结果:str1="cdac"
猜你喜欢
转载自blog.csdn.net/qq_45861670/article/details/104145318
今日推荐
周排行