给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
标签:href ems 过程 else center str 短字符串 ++ 输出
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
删除输入的短字符串(不区分大小写)并去掉空格,输出。
in
#include
int main()
{
printf(" Hi ");
}
#clude
tma()
{
prtf("Hi");
}
注:将字符串中的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("\n"); 43 } 44 return 0; 45 }
标签:href ems 过程 else center str 短字符串 ++ 输出
原文地址:https://www.cnblogs.com/heyour/p/12149886.html