九度-1168 字符串的查找删除

来源:互联网 发布:天涯明月刀包子脸数据 编辑:程序博客网 时间:2024/05/16 03:56
题目描述:

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。

输入:

输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。

输出:

删除输入的短字符串(不区分大小写)并去掉空格,输出。

样例输入:
in#include int main(){printf(" Hi ");}
样例输出:
#cludetma(){prtf("Hi");}
提示:

注:将字符串中的In、IN、iN、in删除。


代码:

# include <stdio.h># include <string.h>void trans(char*a,char*b,int len){  int i;  for (i=0;i<len;i++)  {    if (a[i]>='A'&&a[i]<='Z')      b[i]=a[i]+32;    else      b[i]=a[i];  }   b[i]='\0';    }int main (){  char s[100],s2[100],in[100][100],in2[100][100],t;  int i,j,len,slen,end;  gets(s);  len=strlen(s);  trans(s,s2,len);  i=0;  while (gets(in[i])!=NULL)  {    trans(in[i],in2[i],strlen(in[i]));    i++;  }  slen=i;  for (i=0;i<slen;i++)  {    j=0;     while (strlen(in2[i])-j>=len)    {       end=j+len;      t=in2[i][end];      in2[i][end]='\0';      if (strcmp(s2,&in2[i][j])==0)      {        for (;j<end;j++)          in2[i][j]=' ';                              }      else        j++;      in2[i][end]=t;          }            }  for (i=0;i<slen;i++)  {    for (j=0;j<strlen(in2[i]);j++)      if (in2[i][j]!=' ')        printf ("%c",in[i][j]);    if (i!=slen-1)      printf ("\n");  }  return 0;    }



原创粉丝点击