zoukankan      html  css  js  c++  java
  • PAT 10-2 删除字符串中的子串

    今天发一个不完全对(通过garbageMan园友的帮忙,现已全对)的代码,(/*后两用例未通过,一时看不出问题在哪,*/)切入正题

    /*
        Name: 
        Copyright: 
        Author: 
        Date: 03/04/15 15:19
        Description: 
    输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
    
    输入格式:
    
    输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
    
    输出格式:
    
    在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
    
    输入样例:
    Tomcat is a male ccatat
    cat
    输出样例:
    Tom is a male 
    */
    
    #include <stdio.h>
    #include <string.h>
    
    #define MAX 80
    
    void print(char * str, char * substr);
    
    int main()
    {
    //    freopen("in.txt", "r", stdin); // for test
        char str[MAX + 1], substr[MAX + 1];
        
        gets(str);
        gets(substr);
        
        print(str, substr);
    //    fclose(stdin); // for test
        return 0;
    }
    
    void print(char * str, char * substr)
    {
        int l;
        char * p;
        
        l = strlen(substr);
    //    p = strstr(str, substr); // wrong code
    //    while(p)
    //    {
    //        strcpy(p, p + l);
    //        p = strstr(str, substr);
    //    }
        while(p = strstr(str, substr)) // corrected code
            memmove(p, p + l, strlen(p + l) + 1);
        
        printf("%s
    ", str);
    }

    5日修改2次,我对比过一个通过的程序,是strcpy()那里不一样,这里为什么不对?求教!!!

    6日修改1次,现已全对,将原来的strcpy()函数替换成了memmove()函数

  • 相关阅读:
    JavaScript表单编程
    JavaScript事件模型
    DOM总结
    CSS3 媒体查询响应式布局
    BOM总结
    JS实现文字图片无缝滚动
    深入理解jQuery事件绑定机制
    被你忽略的jQuery常用方法“特异功能”
    关于BOM的学习总结
    Hello,World!
  • 原文地址:https://www.cnblogs.com/qingkai/p/4393122.html
Copyright © 2011-2022 走看看