string :3360 string (常数char * s ) {int len; char s_temp; Length=Strlen(s; pBuf=new char[length 1]; //pBuf是String类的char*变量while(*s!=' ' ) {*pBuf =*s; }*pBuf=' '; cout ' initializingpbuff : ' pbuf endl; cout 'length: ' length endl; }程序运行后,pBuf没有打印内容。 经过反复查明原因,终于发现了问题。
本来,*pBuf =*s; 的时候,pBuf的位置已经改变了。 另外,用cout打印时,pBuf的位置已经在pBuf[length 1]处,所以没有内容。
解决方案是首先定义char *p,保存pBuf,然后进行复制操作。