010 从相应位置开始删除指定字符串的相应个字符

【我解C语言面试题系列】010 从相应位置开始删除指定字符串的相应个字符

从相应位置开始删除指定字符串的相应个字符

假设一个字符串 " abcdefg ",那么请你写一个函数,该函数将会从指定位置开始,删除指定长度的字符。如:要从第二个开始,删除2两个字符。则删除后的字符串是“adefg”。

char *DeleteTheCharacters(char *str,int pos,int len)

{

   char *p = str+pos-1;

   int tt = strlen(str);

   

   // If over the p && (p + len) over the length of str

   if( pos < 1)         return str;

   if( (p-str) > tt )   return str;

   if( (p+len-str) > tt)

   {

       *p = "/0";

      return str;

   }

   

   //Delete the len characters

   while(*p && *(p+len))

   {

      *p = *(p+len);

      p++;

   }

   *p = "/0";

   

   return str;

}
文章导航