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

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

相关推荐
ejinxian6 分钟前
2026 年 Java 开发计划-Oracle公布
java·开发语言·java 开发计划
Sylvia-girl12 分钟前
Java之日志框架
java·开发语言
じ☆冷颜〃15 分钟前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
oioihoii21 分钟前
QT跨平台一次编写,处处编译
开发语言·qt
edisao22 分钟前
四。SpaceX、网络化与未来的跨越:低成本、高频次的真正威胁
大数据·开发语言·人工智能·科技·php
qq_3363139323 分钟前
java基础-多线程练习
java·开发语言·算法
wjs202424 分钟前
《jEasyUI 树形网格添加分页》
开发语言
我是一只小青蛙88824 分钟前
C++核心过渡:类与对象精讲
开发语言·c++
鹿角片ljp25 分钟前
Java多线程编程:从基础到实战的完整指南
java·开发语言·后端
超级无敌大学霸31 分钟前
c语言算术转换及表达式解析
c语言·开发语言