#include <stdio.h> char const *find_char(char const *source, char const *chars) { char const *substr = chars; if (source == NULL || chars == NULL || *source == 0 || *chars == 0) return NULL; for (; *source;source++) { chars = substr; for (; *chars;chars++) if (*source == *chars) return source; } return NULL; } int del_substr(char *str,char const *substr) { char *temp_str; char const *temp_substr; size_t substr_len; temp_str = str; for (;*temp_str;temp_str++) { temp_substr = substr; for (; *temp_substr && *temp_str == *temp_substr;temp_substr++,temp_str++) ; if (*temp_substr == 0) //找到第一个子串退出 break; else { temp_str -= temp_substr-substr; } } if (*temp_str == 0) //不存在子串 return 0; substr_len = temp_substr - substr; for (;*temp_str;temp_str++) *(temp_str - substr_len) = *temp_str; *(temp_str-substr_len) = 0; return 1; } void reverse_string(char *string) { char *str_begin,*str_end; char char_temp; for (str_end = string; *str_end; str_end++) ; --str_end; for (str_begin = string; string < str_end; str_begin++,str_end--) { char_temp = *str_begin; *str_begin = *str_end; *str_end = char_temp; } } int main(void) { char const *source = "ABCDEF"; char const *chars = "XRCQEF"; char const *p = find_char(source,chars); char str[] = "ABCDEFGCDEFG"; char *substr = "CDE"; if (p != NULL) printf("YES!/n"); else printf("NO!/n"); del_substr(str,substr); printf(str); return 0; }