九度OJ 1168:字符串的查找删除 (查找)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                九度OJ 1168:字符串的查找删除 (查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                時間限制:1 秒
內存限制:32 兆
特殊判題:否
提交:4276
解決:1699
題目描述:給定一個短字符串(不含空格),再給定若干字符串,在這些字符串中刪除所含有的短字符串。
 輸入只有1組數據。
 輸入一個短字符串(不含空格),再輸入若干字符串直到文件結束為止。
刪除輸入的短字符串(不區分大小寫)并去掉空格,輸出。
注:將字符串中的In、IN、iN、in刪除。
思路:
含空格的輸入可以用gets函數。
代碼:
#include <stdio.h> #include <string.h>#define M 100int match(char c1, char c2) {if ('A' <= c1 && c1 <= 'Z')c1 += 'a'-'A';if ('A' <= c2 && c2 <= 'Z')c2 += 'a'-'A';return (c1 == c2); }void delete(char *s, int len) {int i;for (i=0; i<strlen(s)-len; i++)s[i] = s[i+len];s[i] = '\0'; }int main(void) {int j, k, m;int matched;char s[M], mod[M];//scanf("%s", mod);gets(mod);while (gets(s)){for (j=0; j<strlen(s); j++){if (s[j] == mod[0]){matched = 1;for (m=j, k=0; m<strlen(s) && k<strlen(mod); m++, k++){if (! match(s[m], mod[k])){matched = 0;break;}}if (m == strlen(s) && k<strlen(mod))matched = 0;if (matched == 1)delete(s+j, strlen(mod));}else if (s[j] == ' ')delete(s+j, 1);}printf("%s\n", s);}return 0; } /**************************************************************Problem: 1168User: liangrx06Language: CResult: AcceptedTime:0 msMemory:912 kb ****************************************************************/轉載于:https://www.cnblogs.com/liangrx06/p/5083859.html
總結
以上是生活随笔為你收集整理的九度OJ 1168:字符串的查找删除 (查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Ubuntu 中Eclipse 默认的O
- 下一篇: Deploy One Project o
