一个删除子字符串的程序,没有使用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 -- 子字符串
- ** 若成功找到子字符串并删除之,返回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;
- }
本文介绍了一个用C语言实现的子字符串删除程序。该程序不依赖于标准库函数,通过自定义函数完成子串查找及删除操作,并提供了一个简单的测试案例。
6191

被折叠的 条评论
为什么被折叠?



