[题目分析]本题是字符串的插入问题要求在字符串s的pos位置插入字符串t首先应查找字符串s的pos位置将第pos个字符到字符串s尾的子串向后移动字符串t的长度然后将字符串t复制到字符串s的第pos位置后
对插入位置pos要验证其合法性小于或大于串s的长度均为非法因题目假设给字符串s的空间足够大故对插入不必判溢出
void insert(char *schar *tint pos)//将字符串t插入字符串s的第pos个位置
{int i=x=; char *p=s*q=t; //pq分别为字符串s和t的工作指针
if(pos<) {printf(pos参数位置非法\n);exit();}
while(*p!=\&&i<pos) {p++;i++;} //查pos位置若pos小于串s长度则查到pos位置时i=pos
if(*p == /) {printf(%d位置大于字符串s的长度pos);exit();}
else //查找字符串的尾
while(*p!= /) {p++; i++;}//查到尾时i为字符\的下标p也指向\
while(*q!= \) {q++; x++; } //查找字符串t的长度x循环结束时q指向\
for(j=i;j>=pos ;j){*(p+x)=*p; p;}//串s的pos后的子串右移空出串t的位置
q; //指针q回退到串t的最后一个字符
for(j=;j<=x;j++) *p=*q; //将t串插入到s的pos位置上
[算法讨论] 串s的结束标记(\)也后移了而串t的结尾标记不应插入到s中
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []