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);
}

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

相关推荐
想做后端的前端1 分钟前
Lua的热更新
开发语言·lua
czhaii10 分钟前
math.h数学函数库 ctype.h函数
c语言·c++·算法·机器学习
隐退山林13 分钟前
JavaEE初阶:多线程进阶
java·开发语言
lead520lyq15 分钟前
Golang Protoc Grpc实现微服务通信
开发语言·微服务·golang
BHXDML15 分钟前
Python:(一)变量、类型与 f-string —— 数据的载体
开发语言·python
进击的小头25 分钟前
IIR滤波器核心原理深化:从差分方程到工业级实现
c语言·python·算法
学嵌入式的小杨同学26 分钟前
【Linux 实战】Makefile 自动化构建进阶:静态库 / 动态库通用模板(一键编译 + 系统安装)
linux·开发语言·git·vscode·spring·vim·ux
小孟的CDN28 分钟前
一维热传导方程的PINN求解——损失函数实时绘制
开发语言·python
透明的玻璃杯31 分钟前
VS2015+QT5程序发布
开发语言·qt
爱学习的阿磊36 分钟前
自定义操作符重载指南
开发语言·c++·算法