当前位置:天才代写 > tutorial > C语言/C++ 教程 > 删除子字符串的措施

删除子字符串的措施

2017-11-02 08:00 星期四 所属: C语言/C++ 教程 浏览:383

一个删除子字符串的措施,没有利用C的相关字符串库函数:

#include <stdio.h>
int del_substr(char *str,char const *substr);
int my_strlen(char const *str);
int main(void)
{
char str[] = "abcdefgh";
char *substr1 = "efg";
char *substr2 = "fgr";
printf("%d\t%s\n",del_substr(str,substr1),str);
printf("%d\t%s\n",del_substr(str,substr2),str);
return 0;
}
/**
** str -- 字符串
** substr -- 子字符串
**www.bianceng.cn整理
** 若乐成找到子字符串并删除之,提示返回1,若没找到则返回0
**/
int del_substr(char *str,char const *substr)
{
int i = 0;
char *temp_str = str;
char const *temp_substr = substr;
int sub_len = my_strlen(substr);
while(1)
{
if(*temp_str == *temp_substr)
{
temp_substr++;
if(*temp_substr == '\0')
{
break;
}
}
else
{
temp_substr = substr;
}
if(*temp_str == '\0')
{
return 0;
}
temp_str++;
}
char *preDel = temp_str - (sub_len - 1);
while(*(preDel + (i+sub_len)) != '\0')
{
*(preDel + i) = *(preDel + (i+sub_len));
i++;
}
*(preDel + i) = '\0';
return 1;
}
int my_strlen(char const *str)
{
int len = 0;
while( *str++ != '\0')
{
len++;
}
return len;
}

 

    关键字:

天才代写-代写联系方式