删除一个字符串中的子串

 1 // 删除一个字符串中的子串
 2 
 3 #include "stdafx.h"
 4 #include <string.h>
 5 
 6 int delete_substr(char *str1,char *str2)
 7 {
 8     int pos=0,k=0,staic=0,n;  
 9     int str1_len=strlen(str1);
10     int str2_len=strlen(str2);
11     for(int i=0;i<str1_len;i++)
12     {
13         for(int j=0;j<str2_len;j++)
14         {
15             if (str1[i]==str2[j])
16             {
17                 staic=1;
18                 k=1;
19                 pos=i;
20                 while((str1[i+k]==str2[j+k])&&(str1[i+k]!='\0')&&(str2[j+k]!='\0'))
21                     {
22                         k++;
23                     }
24                 break;
25             }
26         }
27         if (staic==1)
28             break;
29     }
30     if(k==str2_len) //找到子串
31     {
32         n=pos+str2_len;  //pos是找到子串在str1中的位置
33         strcpy(str1+pos,str1+n);
34         return 0;
35     }
36     else 
37         return -1;
38 }
39 
40 void main()
41 {
42     int flag;
43     char s1[]="abcdddef";
44     char s2[]="bcdd";
45     printf("s1=%s\n",s1);
46     printf("s2=%s\n",s2);
47     flag=delete_substr(s1,s2);
48     if (flag==0)
49         printf("Succes! \nAfter delete :s1=%s\n",s1);
50     else
51         printf("Failed!The substr is not in string.\n");
52 
53 }

 

 

转载于:https://www.cnblogs.com/xingele0917/archive/2012/10/04/2711617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值