您好,欢迎来到易妖游戏网。
搜索
您的当前位置:首页编写算法,实现下面函数的功能。函数void insert(char *s, char *t, int pos)将字符串t插入到字符串s中,插入位置为pos。假设分配给字符串s的空间足够让字符串t插入

编写算法,实现下面函数的功能。函数void insert(char *s, char *t, int pos)将字符串t插入到字符串s中,插入位置为pos。假设分配给字符串s的空间足够让字符串t插入

来源:易妖游戏网

void Insert(char *s, char *t, int pos)//将字符串t插入到字符串s的pos位置中,pos最小值为0
{
	int i,j, len_s,len_t, move_len;
	char *ptr, *ptr_s;

	i = 0;
	j = 0;
	len_s = 0;
	len_t = 0;

	for(ptr = s; *ptr != '\0'; ptr++)
	{
		len_s++;//不包含'\0'
	}
	for(ptr = t; *ptr != '\0'; ptr++)
	{
		len_t++;//不包含'\0'
	}

	move_len = len_s - pos + 1;//s[]中需要后移的数组元素个数,包含'\0'
	s = (char*)realloc(s, len_s + len_t + 1);
	for(ptr = s + len_s, i = 1; i <= move_len; i++)// 将s中被插入位置及之后的元素全部后移,为t空出位置,i == move_len时将s的'\0'移动至新字符串末尾
	{
		*(ptr + len_t) = *ptr;
		*ptr = 'F'; //
		ptr--;
	}
	cout<<"后半截移动后的s:"<<s<<endl;
	for(ptr_s = &s[pos], j = 0; j < len_t; j++)//将t的元素依次插入s中
	{
		*ptr_s = *(t + j);
		ptr_s++;
	}
	cout<<"t插入后的s:"<<s<<endl;
	return;
}

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- vipyiyao.com 版权所有 湘ICP备2023022495号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务