codeup-字符串的查找删除

Posted heyour

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了codeup-字符串的查找删除相关的知识,希望对你有一定的参考价值。

1808: 字符串的查找删除

Time Limit: 1 Sec  Memory Limit: 32 MB
Submit: 2002  Solved: 574
[Submit][Status][Web Board][Creator:Imported]

Description

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

Input

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

Output

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

Sample Input

in
#include 
int main()
{

printf(" Hi ");
}

Sample Output

#clude
tma()
{

prtf("Hi");
}

HINT

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

 

 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 int main(){
 5     char c[100];
 6     char s[1000];
 7     gets(c);
 8     int len1 = strlen(c), len2;
 9     //将c[i]全部转化为小写 
10     for(int i=0; i<len1; i++){
11         if(c[i]>=A&&c[i]<=Z){
12             c[i] = c[i] + 32;
13         }
14     }
15     while(gets(s)){
16         len2 = strlen(s);
17         if(len2>=len1){
18             //对这个匹配过程不是很理解 
19             for(int i=0, k=0; i<len2; ){
20                 //在匹配时,i不变,不匹配时,i自增! 
21                 if(s[i+k]==c[k] || s[i+k]==c[k]-32){
22                     k++;
23                     if(k==len1){
24                         i = i + k; //在后k项满足时,i增加k 
25                         k = 0; 
26                     }
27                 }else{
28                     if(s[i]!= ){
29                         printf("%c", s[i]);
30                     }
31                     i++;
32                     k = 0;
33                 }
34             }
35         }else{
36             for(int i=0; i<len2; i++){
37                 if(s[i]!= ){
38                     printf("%c", s[i]);
39                 }
40             }
41         }
42         printf("
");
43     }
44     return 0;
45 }

 

以上是关于codeup-字符串的查找删除的主要内容,如果未能解决你的问题,请参考以下文章

codeup 5901 回文串

云效Codeup代码评审中的代码协同

[CODEUP] 1943 进制转换

codeup1959: 全排列 及全排列算法详解

代码安全无忧—云效Codeup代码加密技术发展之路

代码管理平台Codeup测评