程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 刪除子字符串的程序

刪除子字符串的程序

編輯:關於C語言

一個刪除子字符串的程序,沒有使用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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved