//领会指针和其它内存操作的技巧
char *deleteChars(char *str,int pos,int len)
{
char *p = str + pos -1;//指向pos位置字符
int tt = strlen(str);
if (pos < 1 || (p-str) > tt)
{
return str;
}
if( (p+len-str) > tt)//len大于pos后剩余的字符个数,只需对pos位置赋 '\0',因为超出长度相当于删除后面所有的字符
{
*p = '\0';
return str;
}
while (*p && *(p+len) )//len小于或等于pos后剩余的字符个数,删除中间len个字符
{
*p = *(p+len);//通过指针直接修改
p++;
}
*p = '\0';
return str;
}

本文介绍了一个C语言函数,该函数可以删除字符串中指定位置及长度的字符。通过指针操作实现字符的覆盖删除,并展示了如何处理边界情况。
1118

被折叠的 条评论
为什么被折叠?



