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

在如“test#20170425|0425”格式的字符数组的#前插入字符C

	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(back, pos);
	sprintf(newComment, "%sC%s", front, back);
	cout<<newComment<<endl;

输出的newComment为testC#20170420|0420。

如果不用新的字符数组newComment和back接纳,而是直接用pos在commnet上边sprintf,会出现问题。

	char comment[32] = "test#20170420|0420";
	char *back = strchr(comment, '#');
	char front[32]={0};
	memcpy(front, comment, back-comment);
	sprintf(comment, "%sC%s", front, back);
	cout<<comment<<endl;
此时输入的comment为

因为此时的back指针和comment指向的都是和comment相关的,一个指向#,一个指向首地址。

可以使用 `splice()` 方法来实现在字符数组中插入一个字符串,具体步骤如下: 1. 定义一个字符串数组 `arr` 和要插入字符串 `str`。 2. 使用 `indexOf()` 方法查找要插入字符串在数组中的位置,如果返回 `-1` 则表示要插入字符串不在数组中,可以使用 `push()` 方法将其添加到数组末尾。 3. 如果要插入字符串在数组中存在,则可以使用 `splice()` 方法将其插入到指定位置。 示例代码如下: ```javascript let arr = ['apple', 'banana', 'orange']; let str = 'pear'; if (arr.indexOf(str) === -1) { arr.push(str); } else { arr.splice(arr.indexOf(str), 0, str); } console.log(arr); // ['apple', 'banana', 'pear', 'orange'] ``` 在上面的代码,我们首先使用 `indexOf()` 方法查找要插入字符串 `str` 在数组 `arr` 的位置。由于 `str` 不在数组中,所以返回 `-1`,于是我们使用 `push()` 方法将其添加到数组末尾。 如果我们要插入一个已经存在于数组中字符串,可以使用 `splice()` 方法将其插入到指定位置。例如,如果我们要将字符串 `'banana'` 插入数组中,则可以像下面这样: ```javascript let arr = ['apple', 'banana', 'orange']; let str = 'banana'; if (arr.indexOf(str) === -1) { arr.push(str); } else { arr.splice(arr.indexOf(str), 0, str); } console.log(arr); // ['apple', 'banana', 'orange'] ``` 在上面的代码,我们首先使用 `indexOf()` 方法查找要插入字符串 `str` 在数组 `arr` 的位置。由于 `str` 在数组中的位置是 `1`,所以我们使用 `splice()` 方法将其插入到数组的第二个位置,然后输出数组内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值