llf123456 发表于 2021-1-6 19:36:32

ball ball you

删除字符串中的子串 (20分)
输入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>
int main()
{
        int i,j,k=0,flag;
        char s,S,t;
        gets(s);
        gets(S);
        for(i=0;s!='\0';i++)
        {
                flag=1;
      for(j=0;S!='\0';j++)
      {
                   if(S==s)
                   {
                             flag=0;
                   }
          }
          if(flag==1)s=s;
    }
        s=='\0';
        puts(s);
}

jackz007 发表于 2021-1-6 21:01:38

本帖最后由 jackz007 于 2021-1-6 21:09 编辑

#include <stdio.h>
#include <string.h>

int main(void)
{
      int i , j , m , n                                                   ;
      char s1 , s2                                              ;
      gets(s1)                                                            ;
      gets(s2)                                                            ;
      m = strlen(s1)                                                      ;
      n = strlen(s2)                                                      ;
      for(i = 0 ; i < m - n + 1 ;) {
                for(j = 0 ; j < n && s1 == s2 ; j ++)             ;
                if(! s2) {
                        for(j = i + n ; j < m + 1 ; j ++) s1 = s1 ;
                        m -= n                                              ;
                        i -= n - 1                                          ;
                        if(i < 0) i = 0                                     ;
                } else i ++                                                 ;
      }
      printf("%s\n" , s1)                                                 ;
}
      编译、运行实况
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
Tomcat is a male ccatat
cat
Tom is a male

D:\00.Excise\C>
页: [1]
查看完整版本: ball ball you