c语言练习之删除重复子串

来源:互联网 发布:java调用微信发送消息 编辑:程序博客网 时间:2024/05/21 07:51

题目:在asdhelloasdhellodfafafhello中删除hello
下面将每个函数写成.c文件

1、找子串函数

int my_strncmp(char *s1,char *s2){    int i;    int len = strlen(s1);    for(i = 0; i <len; i++)    {       if(*(s1 + i) != *(s2 + i))       {           return -1;       }    }    return 0;}

2、删除子串的函数

#inlcude <string.h>void delete_ch(cahr *str,int len_sub){    int i;    int j;    int len = strlen(str);    for(j = 0; j < len_sub; j++)//删除len_sub长度的字符串的循环    {        for(i = 0; i <len; i++)//删除一个ch的循环        {            *(str + i) = *(str + i + 1);        }        len--;        *(str + i) = '\0';    }}``

3、删除要求重复子串的函数

#include <string.h>void delete_sub_str(char *sub,char *str){    int len = strlen(sub);    while(*str != '\0')    {        if(my_strncmp(sub,str) == 0)        {            delete_ch(str,len);        }        else        {            str++;        }    }}

4、主函数

#include <stdio.h>int main(){    char str[100];    cahr sub[100]'    printf("please input string:\n");    scanf("%s",str);    pirntf("please input a sub string:\n");    scanf("%s",sub);    delete_sub_str(sub,str);    printf("result is %s \n",str);    return 0;}
0 0
原创粉丝点击