C语言之删除中间的*

复制代码
#include <stdio.h>

void fun(char str[]){
    char *p1,*p2,*p3;
    p1 = str;
    p2=str;
    p3=str;
    while(*p3) p3++;
    p3--;
    while(*p1=='*') p1++;
    while(*p3=='*') p3--;
    p2=p1;
    while(p2<p3){
        if(*p2=='*') {
            p2++;
            continue;
        }
        else *p1++=*p2++;
    }
    while(*p2) *p1++=*p2++;
}

int main(){
    char str[100] = "***A*BC*DEF*G******";
    fun(str);
    printf("%s",str);
}

注意两个条件不能同时用++,要不然会实现两次++

相关推荐
gihigo19982 分钟前
距离角度解耦法的MIMO-OFDM雷达波束形成及优化MATLAB实现
开发语言·算法·matlab
独自破碎E7 分钟前
【面试真题拆解】Java锁机制:synchronized、ReentrantLock、锁升级、可重入锁
java·开发语言·面试
努力往上爬de蜗牛8 分钟前
extends
java·开发语言
2401_853576509 分钟前
代码自动生成框架
开发语言·c++·算法
牢七14 分钟前
PHP Debug配置记录
开发语言·php
逆境不可逃15 分钟前
【从零入门23种设计模式23】行为型之模板模式
java·开发语言·算法·设计模式·职场和发展·模板模式
2401_8535765016 分钟前
C++中的组合模式变体
开发语言·c++·算法
学习3人组24 分钟前
Workerman实现 WSS 基于客户端 ID 的精准推送
android·java·开发语言
牛马11135 分钟前
Flutter CustomPaint
开发语言·前端·javascript
重庆兔巴哥44 分钟前
Java环境变量配置不成功,会有什么症状?
java·开发语言