自创
// // Created by 76518 on 2023/10/31. // #include <stdio.h> #include <string.h> // 将字符串转换为小写形式 void toLowerCase(char* str) { int length = strlen(str); for (int i = 0; i < length; i++) { if (str[i] >= 'A' && str[i] <= 'Z') { str[i] = str[i] + 32; } } } // 删除字符串中的子字符串 void removeSubstring(const char* str, const char* sub) { int str_len = strlen(str); int sub_len = strlen(sub); char temp[str_len]; int i, j = 0; // 将字符串转换为小写形式进行匹配 char str_lower[str_len + 1]; strcpy(str_lower, str); toLowerCase(str_lower); char sub_lower[sub_len + 1]; strcpy(sub_lower, sub); toLowerCase(sub_lower); // 使用滑动窗口进行匹配 for (i = 0; i <= str_len - sub_len; i++) { int match = 1; for (int k = 0; k < sub_len; k++) { if (str_lower[i + k] != sub_lower[k]) { match = 0; break; } } if (match) { i = i + sub_len - 1; } else { temp[j++] = str[i]; } } // 复制剩余的字符 for (; i < str_len; i++) { temp[j++] = str[i]; } temp[j] = '\0'; strcpy(str, temp); } int main() { char str[100]; gets(str); removeSubstring(str, "is"); printf("%s", str); return 0; }