删除数组(或字符串)中某个元素,保持原序列顺序不变

阅读: 评论:0

删除数组(或字符串)中某个元素,保持原序列顺序不变

删除数组(或字符串)中某个元素,保持原序列顺序不变

关键点: “覆盖”思想

假设下标从0开始。每次只删一个元素。

1.各种情况及思路

情况1:删除尾元素(最简单)

思路:其他元素不变,去掉最后一个元素

实现:只需将数组长度减一,系统自动忽略最后一个元素

情况2:删除首元素

思路:所有元素均向前移1位;

实现:用后一个元素的值覆盖前一个元素的值。a[i]=a[i+1]

//删除首元素for(int i=0;i<len-1;i++){a[i]=a[i+1];} len=len-1;

注意:每次删除完一个元素之后,数组长度减一。

情况3:删除中间第i个元素

思路:第i个元素前面的元素顺序不变,第i+1个元素到最后一个元素均向前移1位

实现:从第i个元素开始,用第i+1的元素的值覆盖第i个元素,即用后一个元素的值覆盖前一个元素的值。

//删除下标为i的元素for(int k=i;k<len-1;k++){a[k]=a[k+1];} len=len-1;

完整代码:

#include<stdio.h>
#include<string.h>char a[260];int main()
{//字符串输入 scanf("%s",a); //输入下标i int i;scanf("%d",&i);int len=strlen(a);//删除下标为i的元素for(int k=i;k<len-1;k++){a[k]=a[k+1];} len=len-1;//字符串输出 for(int i=0;i<len;i++) {printf("%c",a[i]);}return 0;
}

本文发布于:2024-02-01 10:01:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170675287735849.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组   字符串   序列   顺序   元素
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23