4925: 字符串的查找删除
Time Limit: 1 Sec Memory Limit: 32 MB
[Submit][Status][Web Board]
Description
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
Input
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
Output
删除输入的短字符串(不区分大小写)并去掉空格,输出。
Sample Input
in
#include
int main()
{
printf(" Hi ");
}
Sample Output
#clude
tma()
{
prtf(“Hi”);
}
HINT
注:将字符串中的In、IN、iN、in删除。
Source
数据结构高分笔记
AC代码:
#include <stdio.h>
#include <string.h>
char a[100],b[100][1000];
char *str( char *p,char *q)
{
int lenth_a = strlen(q);
while(*p)
{
if(strncasecmp(p,q,lenth_a) == 0)
{
char *start = p;
for(int i = 0; i < lenth_a; i++)
*start++ = ' ';
}
p++;
}
return NULL;
}
int main()
{
memset(a,'\0',sizeof(a));
memset(b,'\0',sizeof(b));
scanf("%s",a);
getchar();
int i = 0;
while(gets(b[i]))
{
i++;
}
for(int k = 0; k < i; k++)
{
str(b[k],a);
for(int j = 0; b[k][j]!='\0'; j++)
if(b[k][j]!=' ')
printf("%c",b[k][j]);
printf("\n");
}
return 0;
}
/*
总结:要不区分大小写比较字符串可以使用strcasecmp和strncasecmp
后者多了一个参数,即要比较的长度
可以根据strncasecmp写不分大小写查子串的函数。
*/