关于字符串的剪裁的问题。
char * str; str = "0123456789";
我现在想把6以后的部分去掉,只留下“0123456”,我是这样写的代码:
*(str + 7) = '\0';
可以实现功能,但是我想问下,6以后的那部分内存系统会回收吗?
如果不能回收要怎样修改代码?
char * strcpy(char * strDest,const char * strSrc) { if ((strDest==NULL)||(strSrc==NULL)) //[1] throw "Invalid argument(s)"; //[2] char * strDestCopy=strDest; //[3] while ((*strDest++=*strSrc++)!='\0'); //[4] return strDestCopy; }
/* * 去掉右边的字符c */ void Formula::TrimEnd (const char c) { for (int i = strlen(formulaString) - 1 ; i >= 0 ; i--) { if (*(formulaString + i) != c) { *(formulaString + i + 1) = '\0'; break; } } return; }
*(formulaString + i + 1) = '\0';