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

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

相关推荐
noipp1 分钟前
推荐题目:洛谷 P16510 [GKS 2015 #C] gRanks
java·c语言·开发语言·c++·python·算法
flyinmind1 分钟前
Java环境与Android环境中使用QuickJS
java·开发语言·javascript·quickjs
郑洁文2 分钟前
基于Python的HTTP服务漏洞信息收集工具设计与实现
开发语言·python·http
程序喵大人2 分钟前
从内存/汇编角度看C与C++:指针、引用、对象的底层差异
c语言·汇编·c++·指针·引用·对象
不吃鱼的羊3 分钟前
DaVinci Developer自动连接
java·开发语言
Evand J6 分钟前
【MATLAB例程】VSIMM与IMM在机动目标跟踪中的性能对比,CV+CT双模型
开发语言·matlab·目标跟踪
Meteors.10 分钟前
Kotlin协程序使用技巧和应用场景
android·开发语言·kotlin
晚风吹红霞14 分钟前
C++ vector 深度剖析:从入门到模拟实现,避开所有坑
开发语言·c++
凯瑟琳.奥古斯特16 分钟前
力扣1235完整解法详解
java·开发语言·leetcode
z落落21 分钟前
C# 继承基础详解(代码实战+权限规则)
java·开发语言