天天看點

從字元串的指定位置開始,删除指定長度字元

//領會指針和其它記憶體操作的技巧
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;
}
           

繼續閱讀