向字符数组中插入一个字符

    char comment[32] = "test#20170420|0420";
    char *pos = strchr(comment, '#');
    char front[32]={0};
    char back[32]={0};
    char newComment[32] = {0};
    memcpy(front, comment, pos-comment);
    strcpy_s(back, pos);
    sprintf_s(newComment, "%sC%s", front, back);
    std::cout<<newComment<<endl;

 

任何new内存都是消耗的,正确的做法是使用memcpy

转载于:https://www.cnblogs.com/pipicfan/p/9917379.html

在Java中,如果你想在字符数组插入一个字符,并保持数组元素有序(例如升序排列),你需要先找到插入位置,然后将后面的元素向后移动一位。这里假设我们想插入的是ASCII值递增的情况。以下是简单的步骤: 1. 创建一个字符数组 `char[] chars` 和一个插入字符 `char insertChar`。 2. 使用 `Arrays.binarySearch()` 函数查找插入位置。这个函数会返回目标字符应该插入的位置,如果目标字符已经存在,则返回其索引;如果不存在,返回插入点,使得插入后的数组仍然有序。注意,这个函数假设数组已经是按照升序排列的。 ```java int index = Arrays.binarySearch(chars, insertChar); ``` 3. 如果 `index >= 0`,说明字符已经在数组中,不需要插入;如果是负数,那么 `index` 的绝对值就是需要插入的位置(从0开始计数)。 4. 插入操作: - 如果 `index == 0`,直接将 `insertChar` 放在第一位。 - 否则,创建一个新的字符数组 `tempChars`,长度为 `chars.length + 1`,并将前 `index` 个元素复制到新数组,然后把 `insertChar` 放在第 `index + 1` 位,最后再将剩下的元素复制到新数组。 5. 最后,用新的有序字符数组替换原来的 `chars` 数组。 ```java if (index < 0) { char[] tempChars = new char[chars.length + 1]; System.arraycopy(chars, 0, tempChars, 0, index); tempChars[index + 1] = insertChar; if (index > 0) { System.arraycopy(chars, index, tempChars, index + 2, chars.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值