strlen()返回的是字符串的长度,从开始到遇到0为止,但是你把str赋值的时候只复制字符,没有赋值0,而且new后,没有用memset清为0.在new句子后加一句:memset(pcary, 0 , str.size()+1 );试试