c 替换字符串

2021-03-09  本文已影响0人  南娇
char* str_replace(char* str,char* src,char* des){
    //返回的结果
    char* result = (char*)malloc((strlen(str) - strlen(src) + strlen(des))*sizeof(char));
    
    //先判断是否包被替换的字符串,返回的是要查找的字符串的首地址
    char* pos = strstr(str,src);
    if (!pos){
        //如果不包含直接返回
        return str;
    }
    //计算src的位置
    int start_end = pos - str;
    char* start = str_sub(str, 0, start_end);

    int end_start = start_end + strlen(src);
    char* end = str_sub(str, end_start, strlen(str));

    strcpy(result, start);
    strcat(result,des);
    strcat(result,end);

    return str_replace(result,src,des);
}

截取字符串

/*
 截取字符串
@str 要被截取的字符串
@start 从什么位置开始截取
@end 到哪个位置结束截取
*/
char* str_sub(char* str,int start,int end){

    char* result = (char*)malloc((end - start)*sizeof(char));
    str += start;
    for (int i = 0; i < (end-start); i++)
    {

        result[i] = *str;
        str++;

    }
    result[(end - start)] = '\0';
    return result;
}
上一篇下一篇

猜你喜欢

热点阅读