![]() |
[C语言]字符串删除子串 |
Walker
管理员
L12
• 2018-09-02 • 回复 1 • 最后编辑于2018-09-04 23:26 • 只看楼主
• 举报
|
C和指针第六章课后题
#include <stdio.h>
int del_substr(char *str, char const *substr);
int main(void) { char src[] = "ABCDEFG"; //char *substr = "FGH"; char *substr = "CDE"; int ret = 0; ret = del_substr(src, substr); printf("ret = %d\n", ret); printf("%s\n", src); return 0; } int del_substr(char *str, char const *substr) { char *t_str = str; char const *t_substr = substr; int flag = 0; char *find_str = NULL; //查找子串 while (*t_str) { if (*t_str == *t_substr) { if (find_str == NULL) { find_str = t_str; //指向第一次出现子串的位置 } t_substr++; if (*t_substr == '\0') //找到目标子串 { break; } } else { t_substr = substr; //复位指针 find_str = NULL; } t_str++; } if (find_str == NULL) { flag = 0; } else { flag = 1; //进行删除除子串 while (*t_str) { t_str++; *find_str = *t_str; //将后面的字符赋值过来 find_str++; } } return flag; }