练习 2-4 squeeze(s1, s2),将字符串 s1 中任何与字符串 s2 中字符匹配的字符都删除。
额~做题时理解错了,看成完全匹配了 下面是完全匹配时的代码
#include <stdio.h> #include <string.h> void squeeze(char s1[], char s2[]); int main() { char s1[20] = "abcabcghiabcasdfeaa"; char s2[4] = "abc"; squeeze(s1, s2); printf("%s\n", s1); return 0; } void squeeze(char s1[], char s2[]) { int old, new, i; int len = strlen(s2); for (old = new = 0; s1[old] != '\0'; old++) { if (s1[old] == s2[0]) { i = 1; while (i < len && s1[old + i] == s2[i]) { if (i == len - 1) { old += len; if (s1[old] == s2[0]) i = 0; } ++i; } } s1[new++] = s1[old]; } s1[new] = '\0'; }