假设下标从0开始。每次只删一个元素。
1.各种情况及思路
思路:其他元素不变,去掉最后一个元素
实现:只需将数组长度减一,系统自动忽略最后一个元素
思路:所有元素均向前移1位;
实现:用后一个元素的值覆盖前一个元素的值。a[i]=a[i+1]
//删除首元素for(int i=0;i<len-1;i++){a[i]=a[i+1];} len=len-1;
思路:第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 条评论) |