关于字符串前导*的移动/删除的几种情况

2023-05-16

1、编写一个程序把所有字符串的前导*保留,其他的*号都删除
效果:        ***shd***swbd*dwh  转换成  ***shdswbddwh 
算法分析,先研究一个字符串

 

char a[100]="***shd***swbd*dwh",b[100]="";
int  i,j,k=0;
puts(a);
for(i=0;a[i];i++)
{   
    if(a[i]!='*')
    {
        break; 
    }
    b[k++]=a[i];
}
for(j=i;a[j];j++)//下标跟随法
{
     if(a[j]=='*')
    {
        continue; 
    }
    b[k++]=a[j];
}
b[k]='\0';
puts(b);

如果是一个二维字符数组呢?
//前导*保留,后面出现的*全部删除




 

给定几个字符串,编写程序把字符串的前导*移动到末尾
***shd***swbd*dwh  转换成    shd***swbd*dwh*** 

char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"};
int  i,j,k=0;
for(i=0;i<4;i++)
{  
    puts(a[i]);
}
puts("_______");
for(i=0;i<4;i++)
{   
    for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
   { 
         if(a[i][j]!='*')//先要越过a[i]的前导*
         {
             break; 
         }
   }
   k=j;//让k与j同步,发生联系
   for(;a[i][j];j++)//下标跟随法
   {
        if(a[i][j]=='*')
        {
              continue; 
        }
        a[i][k++]=a[i][j];
   }
   a[i][k]='\0';
}
for(i=0;i<4;i++)//输出结果
{  
    puts(a[i]);
}

方法二
使用数组b来装入数组a

 

char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"},b[4][100]={""};
int  i,j,k=0,m,t;
for(i=0;i<4;i++)
{  
    puts(a[i]);
}
puts("_______");
for(i=0;i<4;i++)
{   
    for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
    { 
         if(a[i][j]!='*')//先要越过a[i]的前导*
        {
            break; 
        }

     }
    m=j;    
    k=0;
    for(;a[i][j];j++)//下标跟随法
    {
         b[i][k++]=a[i][j];
    }
    for(t=0;t<m;t++)
    {
        b[i][k++]='*';
    }
    b[i][k]='\0';
 }
    for(i=0;i<4;i++)
   {  
       puts(b[i]);
   }
/*方法二*/


char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"};
int  i,j,k=0,m,t;
for(i=0;i<4;i++)
{  
    puts(a[i]);
}
puts("_______");
for(i=0;i<4;i++)
{   
      for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
       { 
            if(a[i][j]!='*')//先要越过a[i]的前导*
           {
              break; 
           } 
      }
  //退出循环后,把j的值保存起来,移位需要差距
   k=j;//让k与j同步,发生联系
   for(;a[i][j];j++)//把后面元素向前移
   {
       a[i][j-k]=a[i][j];//a[i][0]
   }
//这时j已经跑到最后了,需要在字符串后面加上j-k个*号
   for(m=j-k;m<j;m++)//再加上前面的*号
   {
      a[i][m]='*';
   }
   a[i][j]='\0';
}
for(i=0;i<4;i++)
{  
    puts(a[i]);
}



给定几个字符串,编写程序把字符串的前导*移动到末尾,同时还要删除中间出现的*号
***shd***swbd*dwh  转换成   shdswbddwh*** 



char a[4][100]={"***sh**d","***sw76***b","***d*d*","**w12h***"},b[4][100]={""};
int  i,j,k=0,m,t;
for(i=0;i<4;i++)
{  
    puts(a[i]);
}
puts("_______");


for(i=0;i<4;i++)
{   
for(j=0;a[i][j];j++)//先考察第i个字符串a[i]
    { 
if(a[i][j]!='*')//先要越过a[i]的前导*
{
break; 
}

}
m=j;    
k=0;
for(;a[i][j];j++)//下标跟随法
    {
if(a[i][j]=='*')
{
continue;
}
b[i][k++]=a[i][j];
}
for(t=0;t<m;t++)
{
b[i][k++]='*';
}
b[i][k]='\0';
}
for(i=0;i<4;i++)
{  
puts(b[i]);
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于字符串前导*的移动/删除的几种情况 的相关文章

  • 目标设定的SMART原则

    目标设定的SMART原则来源于管理大师彼得 德鲁克的 管理的实践 xff0c 有五个基本的原则 xff1a 1 目标必须是具体的 xff08 Specific xff09 2 目标必须是可以衡量的 xff08 Measurable xff0
  • 软件安全开发 - 流程规范

    写一篇软件安全开发流程分享给大家 xff0c 帮助从事软件开发 xff0c 测试 xff0c 管理的人员 xff0c 规范操作 xff0c 重视软件工程安全 现今社会存在各种网络安全事件 xff0c 比如勒索病毒导致许多网络系统瘫痪 xff
  • 读保护_混合ASIL系统中不同安全等级模块间的边界保护

    01 功能安全组件的软件开发 针对ISO 26262对功能安全软件研发的要求 xff0c AUTOSAR将功能安全需求进行了具体拆分 当前的AUTOSAR规范囊括了诸多功能安全组件软件开发的需求概念 在AUTOSAR系统设计的架构中 xff
  • 功能安全的一些好文

    特约专栏 一篇文章带你认识功能安全 本文将结合ISO 26262 xff0c 从什么是功能安全 什么是功能安全工程师以及功能安全工程师主要做什么 xff0c 三个方面展开对功能安全的介绍 https mp weixin qq com s v
  • make和makefile

    第二十六课 xff1a Makefile设计 哔哩哔哩 bilibili 内部资料 课程简介 大连理工大学国家精品课 嵌入式软件设计是计算机 软件工程等学科的专业方向课 xff0c 是一门实践性 技术性很强的重要课程 本课程的主要任务是全面
  • acm算法有用吗?写给自己。

    acm算法有用吗 xff1f 写给自己 xff0c 也希望能帮助那些大一迷茫的人 我是一个普通二本院校即将进入大三的acmer xff0c 一般问这个问题的人都是一个acmer的失败者 xff0c 因为成功的人都去忙着学习该学习的算法了 x
  • 算法题中常用的C++ STL

    一 栈 xff08 stack xff09 stack实现了一种先进后出的数据结构 xff0c 使用时需要包含stack头文件 C 43 43 定义stack语法 xff1a span class hljs stl container sp
  • Boot Loader

    在嵌入式操作系统中 xff0c BootLoader是在操作系统内核运行之前运行 可以初始化硬件设备 建立内存空间映射图 xff0c 从而将系统的软硬件环境带到一个合适状态 xff0c 以便为最终调用操作系统内核准备好正确的环境 在嵌入式系
  • 什么是SecOC 板端加密通讯

    板端加密通讯 Security Onboard Communication 缩写为SecOC SecOC是AUTOSAR标准中提出的针对ECU间通信安全提出的标准 CAN网络是明文传输 xff0c 广播报文 xff0c 无发送合法性校验 为
  • C++11:noexcept关键字

    1 介绍 C 43 43 11新标准引入的noexcept 运算符 xff0c 可以用于指定某个函数不抛出异常 预先知道函数不会抛出异常有助于简化调用该函数的代码 xff0c 而且编译器确认函数不会抛出异常 xff0c 它就能执行某些特殊的
  • 嵌入式应用程序设计流程

    第三十课 xff1a 应用程序设计流程 哔哩哔哩 bilibili arm linux gcc 交叉编译器 通过挂载实现程序调试 xff1a xff08 省去程序下载环节 xff09 第三十二课 xff1a 文件操作 哔哩哔哩 bilibi
  • uboot和bootloader有啥区别

    uboot和bootloader有啥区别 reboot to bootloader有什么用 IT教学网 片内的ram用来存储启动代码 xff0c 在2440初始化sdram之前 xff0c 代码就在片内ram中运行 片内ram装载的是nor
  • 微内核和宏内核以及混合内核

    操作系统内核的几个重要的特点 xff1a 内核是操作系统的核心部分 xff0c 它管理着系统的各种资源内核可以看成连接应用程序和硬件的一座桥梁 xff0c 是直接运行在硬件上的最基础的软件实体在一些简单的硬件设备上可以没有内核或操作系统而直
  • Adaptive AUTOSAR——Time Synchronization(VRTE 3.0 R21-11)

    15 Time Synchronization 15 1 What is Time Synchronization 时间同步是自适应平台基础中的一个功能集群 时间同步通过库向应用程序提供C 43 43 API xff0c 该库作为RTA V
  • Adaptive AUTOSAR——Update and Configuration Management(VRTE 3.0 R21-11)

    16 1 What is Update and Configuration Management 更新和配置管理 xff08 UCM xff09 是自适应平台服务中的一个功能集群 作为一种自适应平台服务 xff0c UCM实现了自适应平台的
  • Adaptive AUTOSAR 学习笔记 - AP 背景、技术及特征

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20 11 版本 本文从AUTOSAR EXP PlatformDesign pdf开始 xff0c 一边学习 xff0c 一边顺带着翻译一下 尽力而为 x
  • gPTP时钟同步(时间同步)协议简介

    一 时间同步要解决的问题 不知道大家还记得军训练习齐步走的场景吗 xff1f 齐步走的动作要领你还记得吗 xff1f 教官首先发出 齐步 走 的命令 xff0c 大家听到 齐步 二字后 xff0c 开始调整动作 xff0c 最终所有人实现动
  • acm有用吗?

    acm有用吗 xff1f 废话 xff0c 没用的话费这么大劲干什么来了 xff0c 但是搞acm需要前期的高付出 xff0c 但是后期会有高回报 xff0c 也不是什么都不管不顾的高付出 xff0c 学好基础课的情况下高付出 中学加小学1
  • std::atomic 原子操作

    类模板 template lt class T gt struct atomic 多线程小结 xff1a 非原子操作 xff0c 不加锁 xff0c 效率很高 xff0c 但无法得到正确的结果非原子操作 xff0c 加锁 xff0c 效率很
  • Adaptive AUTOSAR——Execution Management(VRTE 3.0 R21-11)

    ChatGPT回答 xff1a Adaptive AUTOSAR Execution Management 模块是用于管理软件执行的模块 xff0c 其主要功能包括 xff1a 任务调度 xff1a 支持对任务进行调度和执行 xff0c 以

随机推荐

  • 【C/C++】获取当前系统时间(time_t和tm)清晰梳理

    C C 43 43 获取当前系统时间 xff08 time t和tm xff09 清晰梳理 c 43 43 time t YuXi 0520的博客 CSDN博客 C 43 43 获取系统当前时间 c 43 43 time函数 C 43 43
  • Adaptive AUTOSAR——State Management(VRTE 3.0 R21-11)

    状态管理是自适应平台服务中的一个功能集群 在自适应平台中 xff0c 状态决定了一组活动的自适应应用程序 特定于项目的应用程序 xff0c 即状态管理器 xff0c 决定何时请求状态更改 xff0c 从而更改当前活动的应用程序集 状态管理器
  • Adaptive AUTOSAR 文档官方如何阅读

    目前很多关于 Adaptive AUTOSAR 的文章都是官方文档的简化翻译 xff0c 不如直接看官方文档更全面深入 Adaptive AUTOSAR 文档官方下载地址 Adaptive Platform AUTOSAR https ww
  • Adaptive AUTOSAR-诊断管理-Diagnostic Server概述和诊断通信

    Diagnostic Server 对于AUTOSAR adaptive平台 xff0c 不用重新刷写整个ECU即可添加新的软件包 xff0c 各个软件包描述为SoftwareClusters xff0c 每个SoftwareCluster
  • Linux启动过程

    Linux 系统启动过程 菜鸟教程 Linux 系统启动过程 linux启动时我们会看到许多启动信息 Linux系统的启动过程并不是大家想象中的那么复杂 xff0c 其过程可以分为5个阶段 xff1a 内核的引导运行 init系统初始化建立
  • SOTA技术概述

    SOTA技术概述 懂车帝 懂车帝提供对于整车OTA类型 xff0c 主要分为两类 xff0c FOTA xff08 Firmware over the air xff09 和SOTA xff08 Software over t https
  • 什么是AUTOSAR?为什么汽车公司开始采用AUTOSAR来开发新产品?

    越来越多的车企开始应用ATUOSAR xff0c 也有很多公司在招聘时会在JD里注明 xff0c 应聘者需要熟练掌握AUTOSAR xff0c 那么什么是AUTOSAR xff1f 为什么从奔驰 宝马等传统豪华汽车巨头 xff0c 到新势力
  • 4.5 车载通信技术SOME/IP 白皮书

    1 SOME IP 协议概述 SOME IP xff08 Scalable service Oriented MiddlewarE over IP xff09 是指基于 IP 的可扩展的面向服务的中间件 SOME IP 协议于 2011 年
  • 计算机图形学方向和前景&&3D

    我是刚入坑计算机图形学的小菜鸟 xff0c 在百度上搜索计算机图形学方向和前景和3D xff0c 几乎不能搜到什么有用的东西 xff0c google还能搜到些有用的 xff0c 但是需要翻墙 恰好前几天山大承办的games xff0c 北
  • 在字符串中插入另一个字符串方法二

    算法分析 xff1a 把第一个字符串的前一部分和后一部分分别保存在两个字符串result和tmp中 然后再做一个拼接reslut 61 reslut 43 str2 43 tmp include lt stdio h gt include
  • linux压缩命令学习小结

    1 zip格式压缩 zip 压缩文件名 原文件名 zip命令只能压缩文件 压缩文件Ex xff1a zip file1 zip file1 解压缩 unzip file1 zip zip r 压缩文件名 源目录 加了 r就是压缩目录了 mk
  • c语言之链表学习小结

    1 链表 Typedef struct linkworker 此处Typedef 就是给结构体变量名struct linkworker取别名LINK char id 10 char name 10 struct linkworker nex
  • Linux的vim编辑器的使用方法

    Vim 没有菜单 xff0c 只有命令 vim 编辑器有三种模式 xff1a 1 命令模式 xff08 等待用户输入命令 xff09 xff0c 2 输入模式 xff08 等待用户向文本中输入内容 xff09 xff0c 3 底行模式 xf
  • shell中的俄罗斯方块小游戏

    俄罗斯方块的shell脚本 bin Bash Tetris Game APP declaration APP NAME 61 34 0 34 APP VERSION 61 34 1 0 34 颜色定义 cRed 61 1 cGreen 61
  • 三个方法实现求两个数的最大公约数

    复制而来 xff0c 这不是我写的 xff01 从键盘输入两个整数 xff0c 求着两个整数的最大公约数 解题思路 xff1a 从键盘输入两个数 xff0c 通过以下的三个方法实现求两个数的最大公约数 xff1a 辗转相除法 xff1a 取
  • c语言 一维字符型数组

    什么是一维字符型数组 xff1a char a 5 这个数组中含有5各元素 xff0c 每个元素都是一个字符型变量 如何定义一字符型维数组 xff1a 格式 xff1a char 数组名 长度 ex char a 6 定义了一个含有6个字符
  • c语言常用的几个函数

    strcpy函数 2 xff09 如何给字符串进行赋值 xff1a A 字符串不能直接赋值 B 目前而言 给字符串赋值的方法是通过strcpy函数 C strcpy函数需要string h的头文件的支持 D 在使用strcpy函数时不能把大
  • 两个字符型数组,a[]="abcdefgh",用户输入一个值n,把数组a中右边n个字符复制到数组t中,最后输出数组t的值。

    两个字符型数组 xff0c a 61 34 abcdefgh 34 用户输入一个值n xff0c 把数组a中右边n个字符复制到数组t中 xff0c 最后输出数组t的值 算法分析 xff1a 定义两个字符型数组 char a 61 34 ab
  • 图文详解win10/8.1/7系统cmd命令提示符出现“不是内部或外部命令,也不是可运行的程序或批处理文件”

    声明下 xff1a 本教程支持win10 win8 1 8 win7 winxp等windows桌面系统 首先我们需要打开系统的环境变量 xff0c 那么在哪里能找到环境变量呢 xff1f 当然是在系统属性里了 tips xff1a 按下w
  • 关于字符串前导*的移动/删除的几种情况

    1 编写一个程序把所有字符串的前导 保留 xff0c 其他的 号都删除 效果 xff1a shd swbd dwh 转换成 shdswbddwh 算法分析 xff0c 先研究一个字符串 char a 100 61 34 shd swbd d