A-A+
函数void Insert(char*s char*t int pos)将字符串t插入到字符
问题详情
函数void Insert(char*s,char*t,int pos)将字符串t插入到字符串s中,插入位置为pos。请用C语言实现该函数。假设分配给字符串s的空间足够让字符串t插入(说明:不得使用任何库函数)。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:voidInsert(char*schar*tint pos){ /*将串t插入到串S的第pos位置*/if(pos<1)exit(0);/*pos非法*/i=1;P=s;while(*pl=‘\0’&&i<pos){ i++;P++;}if(*P==‘\0’)exit(0); /*pos非法*/while(*p!=‘\0’) /*查找s中结束符的位置*/{ i++;P++;}j=0;q=t;while(*q!=’\0’) /*计算串t的长度*/{ j++;q++;}for(k=i;k>=pos;j一一); /*将串S中第pos起以后的字符后移*/{ *(P+J)=*p;P一一;}P++;q=t; /*将P移到第pos位置q指向串t的第一个字符*/for(k=1;k<=j;k++) /*将每串t插入到串S的pos位置*/P++=q++:}
首先在串s中查找第pos个位置,将pos开始的所有字符依次向后移动串t的长度的位置,然后将串t插人到串S中。算法描述如下。