本文共 1543 字,大约阅读时间需要 5 分钟。
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
删除输入的短字符串(不区分大小写)并去掉空格,输出。
in #include int main() { printf(" Hi "); }
#clude tma() { prtf("Hi"); }
/********************************** 日期:2013-2-12* 作者:SJF0115* 题号: 天勤OJ 题目1064: 字符串的查找删除* 来源:http://acmclub.com/problem.php?id=1064* 结果:AC* 来源:2009年北京航空航天大学计算机研究生机试真题* 总结:输入只有一个案例**********************************/#include字符串匹配详见:#include #include #include char str[1000],string[1001][1001],string2[1001][1001];int main(){ int n,i,j,index = 0,k; //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin); gets(str); while(gets(string[index])) { if(strcmp(string[index],"}") == 0){ break; } index++; }//while //str大写转换为小写 for(i = 0;i < strlen(str);i++){ if(str[i] >= 'A' && str[i] <= 'Z'){ str[i] = str[i] - 'A' + 'a'; } } for(i = 0;i <= index;i++){ //一行一行处理 for(j = 0;j < strlen(string[i]);j++){ //string复制到string2中 string2[i][j] = string[i][j]; //大写转换为小写 if(string[i][j] >= 'A' && string[i][j] <= 'Z'){ string[i][j] = string[i][j] - 'A' + 'a'; } } //匹配处理 j = 0,k = 0; for(j = 0,k = 0;j < strlen(string[i]);){ //继续比较后一字符 if(string[i][j+k] == str[k]){ k++; //匹配成功 if(k == strlen(str)){ j = j+k; } } //重新开始新的一轮匹配 else{ //去掉空格 if(string[i][j] != ' '){ //string3[i][m++] = string2[i][j]; printf("%c",string2[i][j]); } j++; k = 0; } }//for printf("\n"); } return 0;}
转载地址:http://erdsi.baihongyu.com/