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

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

相关推荐
宇木灵9 分钟前
C语言基础-三、流程控制语句
java·c语言·前端
不懒不懒1 小时前
【Python办公自动化进阶指南:系统交互与网页操作实战】
开发语言·python·交互
普通网友1 小时前
C++与Rust交互编程
开发语言·c++·算法
游乐码1 小时前
c#静态类和静态构造函数
开发语言·c#
StandbyTime2 小时前
C语言学习-菜鸟教程C经典100例-练习79
c语言
散峰而望2 小时前
【算法竞赛】堆和 priority_queue
开发语言·数据结构·c++·算法·贪心算法·动态规划·推荐算法
javaIsGood_3 小时前
Java基础面试题
java·开发语言
Forget_85503 小时前
RHEL——LVS模式
java·开发语言·lvs
罗超驿4 小时前
13.1 万字长文,深入解析--抽象类和接口
java·开发语言
A懿轩A4 小时前
【Java 基础编程】Java 面向对象进阶:static/final、抽象类、接口、单例模式
java·开发语言·单例模式