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

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

相关推荐
浅念-19 小时前
C++ STL vector
java·开发语言·c++·经验分享·笔记·学习·算法
m0_5312371719 小时前
C语言-if/else,switch/case
c语言·数据结构·算法
亓才孓19 小时前
[Mybatis]MyBatisSystemException(由于Connection的encoding引起的)
java·开发语言·mybatis
xyq202419 小时前
C# 可空类型
开发语言
Never_Satisfied19 小时前
在c#中,如何在字符串的第x个字符位置插入字符
java·开发语言·c#
csbysj202019 小时前
jQuery UI 定制
开发语言
晔子yy19 小时前
AI编程时代:发挥Rules约束在Vibe-Coding的重要作用
开发语言·人工智能·后端
lly20240619 小时前
JavaScript 字符串深入解析
开发语言
夏乌_Wx19 小时前
从零开始实现一个自己的 Shell:mybash 项目实战
linux·c语言·后端
码云数智-园园19 小时前
React Server Components 深度解析与实战应用:从原理到生产级落地指南
开发语言·前端·javascript