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

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

相关推荐
paopaokaka_luck22 分钟前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
梦雨生生2 小时前
java开发工具(学习第一天)
java·开发语言·学习
啊啊啊啊啊!!!!3 小时前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++
松仔log4 小时前
Java中级——组合和继承
android·java·开发语言
上海安当技术5 小时前
C/S 桌面软件怎么接 UKey 强认证?C# SDK 与 C 动态库集成 WinForms/Qt/工控实战
c语言·qt·c#
(Charon)6 小时前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
雨田言炎6 小时前
五、Qt控件使用说明大全
开发语言·qt
bu_shuo7 小时前
MATLAB中的meshgrid和ndgrid
开发语言·matlab
小羊先生car7 小时前
RTOS-F429-HAL-Freertos内存管理(2026/8/5)
c语言·单片机·rtos
我命由我123457 小时前
Jetpack Compose - MaterialExpressiveTheme 与 MaterialTheme、ColorScheme
android·java·开发语言·java-ee·kotlin·android jetpack·android runtime