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 分钟前
Python3 字符串核心知识点
开发语言·python
会编程的土豆10 分钟前
01背包与完全背包详解
开发语言·数据结构·c++·算法
lbb 小魔仙15 分钟前
Python_多模态大模型实战指南
开发语言·python
XDHCOM30 分钟前
Python os.system() 和 subprocess 怎么选?运行系统命令哪个更好用?
开发语言·网络·python
xixixi777771 小时前
AI自主挖洞 + 通信网络扩散:全域风险指数级放大,如何构建密码-沙箱-终端联动闭环?
开发语言·网络·人工智能·ai·大模型·php·通信
小碗羊肉2 小时前
【从零开始学Java | 第三十五篇】IO流-字节流
java·开发语言
jinyishu_2 小时前
几道链表经典算法题
c语言·数据结构·算法·链表
csbysj20202 小时前
SOAP Fault 元素
开发语言
Soari2 小时前
Ziggo-CaaS-Switch软件配置: undefined reference to pthread_create
java·开发语言·fpga开发·tsn·zynq·交换机配置
wjs20242 小时前
jEasyUI 树形网格动态加载详解
开发语言