码迷,mamicode.com
首页 > 其他好文 > 详细

c之PAT刷题---删除字符串中的特定子串

时间:2014-11-29 23:08:03      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:c语言

改了好久还是没有全过,等明天再看吧!好好休息,明天继续。

#include<stdio.h>

#include<string.h>
char *delete(char str1[80],char str2[80]){
    int len1,len2,l;//l记录出现字符相同的起始位置
    len1=strlen(str1);
    len2=strlen(str2);
    for(int i=0;str1[i]!=‘\0‘;i++){
            if(str1[i]==str2[0]){
                l=i;//记下相同字符出现的位置
                int num=0;
                for(int k=0;k<len2;k++){
                    if(str1[l]==str2[k]){
                        num++;
                        l++;
                    }
                }    //判断是不是完全相同
                //接下来,从i开始,使所有的字符都向前移动三位;
                if(num==len2){//如果符合子串,那么把后面的字符往前推进,挤掉子串
                    for(int k=i;str1[k]!=‘\0‘;k++)
                            str1[k]=str1[k+num];
                }
            }
        }
        return str1[80];
}
int main(){
    char str1[80];
    char str2[80];
    gets(str1);
    gets(str2);//获取字符串
    int fact=1;
    while(fact){
        for(int j=0;str1[j]!=‘\0‘;j++){
                if(str1[j]==str2[0]){
                    delete(str1,str2);//如果与子串的第一个字符相同,调用删除函数
                    fact=0;
                }
        }
        if(fact==0)
            puts(str1);
        else{
            for(int j=0;str1[j]!=‘\0‘;j++){
                if(str1[j]==str2[0]){
                    delete(str1,str2);//如果与子串的第一个字符相同,调用删除函数
                    fact=0;
                }
            }
        }
    }
    puts(str1);//输出操作后的子串
    return 0;
}

c之PAT刷题---删除字符串中的特定子串

标签:c语言

原文地址:http://blog.csdn.net/mycodequeen/article/details/41604539

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!