字符串处理
#include"stdio.h"#include"string.h"
typedef struct
{ char vec[30];
int len;
}node;
//把串r2插入到串r1的第i个字符开始的位置上
void *insert(node *r1,node *r2,int i)
{ int k;
if(i>=r1->len) printf("不能插入!");
else
{ for(k=r2->len-1;k>=i;k--)
r1->vec[r2->len+k]=r1->vec[k];
for(k=0;k<r2->len;k++)
r1->vec[i+k-1]=r2->vec[k];
r1->len=r1->len+r2->len;
r1->vec[r1->len]='\0';
}
return r1;
}
main()
{ node *r1,*r2;
int i;
r1=(node*)malloc(sizeof(node));
r2=(node*)malloc(sizeof(node));
strcpy(r1->vec,"abcdefg");
strcpy(r2->vec,"234");
r1->len=strlen(r1->vec);
r2->len=strlen(r2->vec);
scanf("%d",&i);
insert(r1,r2,i);
printf("%s\n",r1->vec);
}//比如说 abcd 在第1位插入 11,结果应该是a11bcd 而不是 a11d