C 截取字符串

来源:互联网 发布:电力线路设计软件 编辑:程序博客网 时间:2024/06/12 01:13
#include<stdio.h>/** '删除'字符串中的指定字符串组*@author vhjx*@param result 处理结果存放处 *@param src 源字串 *@param sub_str 子串 **/static int mstrlen(const char *str);char * del_strs(char *result, const char *src, const char *sub_str){/*取得子串的长度*/int src_len = mstrlen(src);int sub_len = mstrlen(sub_str);/*判断合法性*/if(NULL == src || NULL == sub_str || NULL == result)    return NULL;if(src_len == 0 || sub_len==0 || src_len<sub_len)return NULL;//定义待删除字串的索引点int mark[1024] = {0},k = 0;int loop_time = src_len - sub_len;int i = 0,j;label_1:for(; i <= loop_time; i++){for(j = 0; j < sub_len; j++){if(src[j+i] != sub_str[j]){i++;goto label_1;}}mark[k++] = i;}if(0 == k)return "Nothing found";/*取出*/int m = 0;for(i = 0; i < src_len; i++){for(j = 0; j < k; j++)/*如果旧字串的下标与mark索引点一致,则将下标i移动sub_len长度*/if(i == mark[j])i += sub_len;result[m++] = src[i];/*填充划分好的存储空间*/}return result; }/*计算字符串长度*/static int mstrlen(const char * str){    if(NULL == str)        return -1;int count = 0;char ch = '\0';while(ch = *str++){if(ch == '\n') continue;count++;}return count;}




0 0
原创粉丝点击