不完全用指针实现,如果有更好的方法,请告知。
int find_all_pattern_substr(char *str,char const *substr)
{
int count = 0;
const char * tempstr = substr;
while (*substr != '\0')
{
char *ch2 = str;
for (; *ch2 != '\0'; *str++)
{
if (*substr == *ch2)
{
count++;
*substr++;
}
*ch2++;
}
*substr++;
}
if (count < strlen(tempstr))
{
return -1;
}
return 1;
}
int delete_substr(char *str, char const *substr)
{
char *str2 = str;
char const *substr2 = substr;
string finalchar = str;
int i=0,begin=0;
if (find_all_pattern_substr(str2, substr2) == 1)
{
while (begin==0&&*str != '\0')
{
char const *substr3 = substr;
for (; *substr3 != '\0';)
{
if (*str == *substr3)
{
/*strcpy_s(str, strlen(str),"");*/
begin = i;
break;
}
*substr3++;
}
*str++;
i++;
}
string s = finalchar.replace(begin, strlen(substr), "");
cout << s.c_str();
return 1;
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
//cout << find_char("ABCDEF", "GDK") << endl;
delete_substr("ABCDEFGH", "EFG");
system("pause");
return 0;
}
结果: