删除字符串A中属于B的字母
题目描述:
设计一程序,处理字符串A
处理规则:只要B字符串中有的字母,无论大小写,一律从A字符串中删掉
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| #include <stdio.h> #include <string.h>
void DeleteArr_By_Index(char *arr, int index) { int i; int len = strlen(arr); for (i = index; i < len -1; i++) *(arr + i) = *(arr + i + 1);
*(arr+i) = '\0';
}
void Del_A_in_B(char *A, char *B) { if (A == NULL || B == NULL) return; int i = 0 , j = 0; while (*(A + i) != '\0') { if ((*(A+i) < 'A' || *(A+i) > 'Z') && (*(A+i) < 'a' || *(A+i) > 'z')) { i++; continue; } while (*(B + j) != '\0') { if(*(A + i) == *(B + j) || *(A + i) + 32 == *(B + j) || *(A + i) - 32 == *(B + j)) { DeleteArr_By_Index(A,i); i--; break; } j++; }
i++; j = 0; } }
int main() {
char arrA[] = "Hellllo World"; char arrB[] = "L o L";
Del_A_in_B(arrA,arrB);
printf("%s\n", arrA);
return 0; }
|
预期结果
He Wrd
运行结果
