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

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

相关推荐
赏金术士几秒前
Kotlin 习题集 · 基础篇
android·开发语言·kotlin
jiayong23几秒前
Python面试题集 - 基础语法与核心概念
开发语言·windows·python
ch.ju3 分钟前
Java程序设计(第3版)第三章——数组的遍历
java·开发语言
凯瑟琳.奥古斯特4 分钟前
Django Flask FastAPI 三者对比
开发语言·python·django·flask·fastapi
青春易逝丶9 分钟前
JAVA基础面试题
java·开发语言
Austindatabases12 分钟前
数据不准确,数据丢失,SQLite怎么保证计算不丢数--SQLite 五脏俱全系列 (5)
java·开发语言·数据库·sqlite
滑稽之神眷顾者13 分钟前
基于正倒排索引的文档搜索引擎测试报告
java·开发语言·功能测试
jiayong2314 分钟前
Python面试题集 - 数据结构与算法
开发语言·python
cui_ruicheng18 分钟前
Linux线程(四):线程池、日志系统与单例模式
linux·开发语言·单例模式
文祐25 分钟前
三维数组在内存中的分布
开发语言·内存