将一个字符串插入另一个字符串的指定位置

这篇博客介绍了一个C语言函数,用于在字符串`a`的指定位置`k`插入字符串`b`。首先,函数通过遍历从字符串末尾到`k-1`的位置来移动字符,然后在`k`位置插入`b`的每个字符。提供的代码示例展示了如何在字符串"123456789"中位置7插入字符串"abc",得到结果"123456abc789"。
摘要由CSDN通过智能技术生成
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<string.h>
void str(char a[], char b[], int k){
	int i, j;
	int b_len = strlen(b);   //定义b的字符长度 b_len = 3
	int a_len = strlen(a);  //定义a的字符长度 a_len  =9
	//下面k-1均为题目要求的指定位置 “移动”“ 插入”均需要这个定值,关键所在


	for (i = a_len - 1; i >= k - 1; i--){  //第一步移动
		a[i + b_len] = a[i];
	}
	for (i = k - 1, j = 0; j < b_len; i++, j++){
		a[i] = b[j];        //第二步插入
	}
}

//本题核心就两步 1.移动 2.插入//
/*1.移动 :顺序从末尾至“指定位置”(建议从尾到指定位置,循环结束条件比较清楚)
    移动单位根据字符串b的长度而定。
  2.插入 :也就是指定位置放入字数串b的值,这个简单理解为打印单个字符串b,
    多了个赋值语句。容易理解单个字符赋值给指定位位置。循环条件就是运用字符串b打印结束的条件 
	也可以写成b[j]!='\0'等价于 j< b_len
*/

	

int main()
{
	char a[100] = "123456789";
	char b[100] = "abc";
	
    str( a,b,7);

	printf("%s\n", a);


	return 0;
}

运行效果如图

 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值