关于字符串的剪裁的问题。
char * str;
str = "0123456789";
我现在想把6以后的部分去掉,只留下“0123456”,我是这样写的代码:
*(str + 7) = '\0';
可以实现功能,但是我想问下,6以后的那部分内存系统会回收吗?
如果不能回收要怎样修改代码?
char * str;
str = "0123456789";
*(str + 7) = '\0';
2011-01-28 16:06
2011-01-28 17:56
程序代码:
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;
}
2011-01-28 19:46
2011-01-28 22:14
程序代码:
/*
* 去掉右边的字符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';
2011-01-28 22:40
2011-01-28 22:59
2011-01-28 23:06