思维题

处理含有删除符号的字符串

假设删除符是*,那么abc**ef*g处理后的结果应是aeg
要求不能开辟新的内存空间

char* process(char* s){
    char* p = s;
    char* q = s;
    while(*p != '\0'){
        if (*p == '*'){
            if (q > s)
                --q;
        }else{
            *q = *p;
            ++q;
        }
        ++p;
    }
    *q = '\0';

    return s;
}

测试:

char s[] = "abc****de*f";
printf("%s=>", s);
printf("%s", process(s));

输出:

"abc****de*f=>df

猜你喜欢

转载自blog.csdn.net/gg_simida/article/details/78738388