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

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

相关推荐
源代码•宸20 小时前
Golang基础语法(go语言error、go语言defer、go语言异常捕获、依赖管理、Go Modules命令)
开发语言·数据库·后端·算法·golang·defer·recover
行者9620 小时前
Flutter适配OpenHarmony:高效数据筛选组件的设计与实现
开发语言·前端·flutter·harmonyos·鸿蒙
xwill*20 小时前
wandb的使用方法,以navrl为例
开发语言·python·深度学习
编程大师哥20 小时前
Java 常见异常(按「运行时 / 编译时」分类)
java·开发语言
bybitq21 小时前
Leetcode131题解 -Python-回溯+cache缓存
开发语言·python
山上三树21 小时前
详细介绍 C 语言中的匿名结构体
c语言·开发语言·算法
大猫和小黄21 小时前
Java开发过程中的各种ID生成策略
java·开发语言·id
EXtreme3521 小时前
【数据结构】彻底搞懂二叉树:四种遍历逻辑、经典OJ题与递归性能全解析
c语言·数据结构·算法·二叉树·递归
繁依Fanyi21 小时前
从初识到实战 | OpenTeleDB 安装迁移使用指南
开发语言·数据库·python
小罗和阿泽21 小时前
java [多线程基础 二】
java·开发语言·jvm