您的位置:首页 > 其它

插入字符到指定字符数组中指定位置

2019-04-23 20:15 92 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/sx_while/article/details/89480185

为了简便直接都固定 字符数组 和 要插入的字符和插入的位置

本例中;固定插入 k 字符,插入位置 3
也就是数组元素下标2的那个元素

插入前的字符数组 A B C D E
插入后要的结果   A B K C D
  • 这类似于现实生活中的插队,假设你插入到其中,在你之后的人都会往后退一步,
    在程序中也实现类似效果就好了,在数组中最后一个人会被挤出去,因为数组长度确定后是不能更改的。
    它只能容纳这么多元素。
char[] ch = {'A', 'B', 'C', 'D', 'E'};

char c = 'K';//要插入的字符

int  index = 3; //要插入的位置

for(int i = ch.length-1; i > index-1; i--){

//前面一个赋值给后面一个
//实现了都移动一位
ch[i] = ch[i-1];

}
  • 循环思路讲解:
  • 变量 i 的初值为 字符数组最后一个元素下标(ch.length)获取字符数组长度
  • 循环条件 i > index - 1 (index -1)是要插入字符的位置下标,条件控制了循环在遍历到要插入的字符位置之前。
  • i - - 这个不需解释了(是为了遍历数组时从i初值(作为数组元素下标)时往前面遍历数组)
  • ch[i] = ch[i-1] 实现了把字符数组前面一个元素的字符赋值给后面一个,后面附上笔者的灵魂画手来解释
  • 这是正确的; 循环已经帮我们把从要插入的位置都往后移动了一格,
  • 最后我们只需要执行
    ch[ index -1 ] = c;
    为要指定插入的位置插入指定的字符就好了。
  • 最终结果就是希望的结果了。最终结果:
    A B K C D;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: