这不是很正常么,有什么问题?char是有符号的,int比它长,超过127的char都是负数,符号扩展为4字节的int可不就是前面全是FF么。这是二进制补码的知识啊。
//先给数组申请空间char*chararray=newchar[str.length()+1];或者charchararray[足够大的空间];然后strcpy(chararray,str.c_str());