(c语言)在字符串中删除子串

来源:互联网 发布:压缩文件解压软件 编辑:程序博客网 时间:2024/05/17 07:01
#include <stdio.h>
#include <string.h>


void input(char *a,char *b)                                          //输入函数
{
    printf("Input the first string:");                                 //输入字符串
    scanf("%s",a);
    printf("\nInput the second string:");                        //输入字符串
    scanf("%s",b);
}


char *find( char *a, char *b )                                       //返回子串首地址函数
{
    int i =0;
    int j = 0;
    int k = 0;


    for(i=0;a[i];i++)
    {
        if(a[i]==*b)                                                         //与子串第一个字符相等
{
   k = i+1;
   for(j=1;a[k]==b[j]&&a[k]&&b[j];k++,j++);         //判断是否存在子串
   if(b[j]=='\0')                                                   //同上
            { 
                return a+i;                                                 //返回字符串中子串的首地址
     }
}
    }
}


char *fun1( char *a,char *b )
{
    char *p = a;
    while( p = find(a,b) )                                           //将找到的地址存入指针p中
    {
        strcpy(p,p + strlen(b));                                     //将字符串复制到地址空间
    }
    return a;                                                              //返回指针
}


int main()
{
    char a[100] = {0};
    char b[100] = {0};

    input(a,b);                                                      //调用输入函数
    printf("\n%s\n",fun1(a,b));                                      //输出结果

    return 0;
}
0 0
原创粉丝点击