zoukankan      html  css  js  c++  java
  • 删除子串,只要是原串中有相同的子串就删掉所有子串。子串至少两个字符。

    //删除子串,只要是原串中有相同的子串就删掉所有子串。子串至少两个字符。
    
    #include<stdio.h>
    #include<string.h>
    
    char* delete_string(char s[],char a[]);
    
    int main()
    {
        char s[255];
        char data[255][255];//存放相同的子串
        int i,j,k;
        int length;
        int row = 0,column;//data[][]的行标和列标
    
        gets(s);
        length = strlen(s);
    
        //寻找相同的子串
        for(i=0;i<length-3;i++)
        {
            for(j=i+1;j<length-1;)
            {
                if((s[i] == s[j]) && (s[i+1] == s[j+1]))
                {
                    column = 0;
                    k = 0;
                    do
                    {
                        data[row][column++] = s[j];
                        j++;k++;
                    }while(s[i+k] == s[j]);
    
                    data[row++][column] = '';
                }
                else
                {
                    j++;
                }
            }
        }
    
        puts("The same string:");
        for(i=0;i<row;i++)
        {
            puts(data[i]);//输出相同的子串
        }
    
        for(i=0;i<row;i++)
        {
            delete_string(s,data[i]);
        }
        puts("After deleted:");
        puts(s);
        return 0;
    }
    
    
    //函数功能:如果字符串s中包含子串a,则将s中的a删除。否则不做任何改变。
    char* delete_string(char s[],char a[])
    {
        int length_s;
        int length_a;
        int i,j,k;
        
        length_s = strlen(s);
        length_a = strlen(a);
    
        for(i=0;i<length_s;)
        {
            j = 0;
            if(s[i] == a[j])
            {    
                do
                {
                    i++;j++;
                }while((j < length_a) && (s[i] == a[j]));
    
                if(j == length_a)
                {
                    //表明s中包含子串a,将其删除。
                    for(k=i;k<=length_s;k++)
                    {
                        s[k-length_a] = s[k];
                    }
    
                    i = i - length_a;
                    j = 0;
                }
                else
                {
                    j = 0;
                }
            }
            else
            {
                i++;
            }
        }
        return s;
    }
  • 相关阅读:
    数据表格优化
    vue数组和对象的监听变化
    python flask框架搭建以及大佬代码参考
    简单爬虫
    srs的基本配置
    记录飞天程序库调用
    面试题 递归算法1+2+....+100求和
    下载列表组件
    Prometheus之系统安装,启动
    nginx之日志
  • 原文地址:https://www.cnblogs.com/Camilo/p/3835188.html
Copyright © 2011-2022 走看看