|  | 
 
| 
传入一个字符串和重复的字符。返回一个去重后的字符串,
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  返回结果一直是空字符。琢磨很久不明白自己错在哪里,求大佬指点问题所在,跪谢
 
 rep_str("abcccd", 'c')
 
 char* rep_str(char *p1,char _c){
 printf("*p1:%s ,_c: %c\n",p1,_c);
 assert(p1 != NULL);
 char *arr = ((char *)malloc(sizeof(p1) + 1));
 if ( arr == NULL ) {return NULL; }
 char *tem_arr = arr;
 
 while (*p1 != '\0') {
 
 if (*p1 != _c) {
 *tem_arr = *p1;
 *tem_arr ++;
 }else{
 printf("重复字符是:%c\n",*p1);
 }
 *p1 ++;
 }
 return  tem_arr;
 }
 
 本帖最后由 永恒的蓝色梦想 于 2020-11-27 21:14 编辑 
复制代码#include<stdio.h>
char* rep_str(char* const str, const char ch) {
    char* fast, * slow;
    if (str) {
        fast = slow = str;
        while (*fast) {
            if (*fast - ch) {
                *slow = *fast;
                slow++;
            }
            fast++;
        }
        *slow = '\0';
        return str;
    }
    else {
        return 0;
    }
}
int main() {
    char str[] = "abcccd";
    rep_str(str, 'c');
    puts(str);
    return 0;
}
 | 
 
截图   |