字符串插入和删除(重点)

#include<stdio.h>
#define LSIZE 81

void strInsert(char str1[],int pos,char str2[]);
void strDelete(char str1[],int iBegin,int iLen);
int main()
{
	char str1[LSIZE] = "Welcome Beijing!";
	char str2[]="to ";
	int iBegin,iLen;
	int len;
	int pos = 8;
	iBegin = 5;
	iLen = 6;

	printf("string1 is %s\n",str1);
	strInsert(str1,pos,str2);
	printf("\nafter inserting str2 at position %d\n",pos);
	printf("string1 is %s\n",str1);	
	
	strDelete(str1,iBegin,iLen);
	printf("\nafter deleting %d char from position %d\n",iLen,iBegin);
	printf("string1 is %s\n",str1);	
	
	return 0;
} 

void strDelete(char str[],int iBegin,int iLen)	//delete iLen chars from str[iBegin] 
{
	int i;
	int len=0;
	while(str[len]) len++;
	
	if(len>iBegin+iLen)			//NOTE
		for(i=iBegin;i<=len-iLen;i++)
			str[i] = str[i + iLen];
	else 
		str[iBegin]='\0';
}

void strInsert(char str1[],int pos,char str2[])	//insert str2 at str1[pos]
{
	char *s;
	int i,i1=0,i2=0;

	while(str2[i2]) i2++;	//length of str2;
	
	while(str1[i1]) i1++;	//str1[i1] is '\0'
	
	for(i=i1;i>=pos;i--)
		str1[i+i2] = str1[i];//move str1[pos-i1] to a right offset i2 
	
	for(i=0;i<i2;i++)		//insert str2
		str1[pos+i]=str2[i];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值