求大神,这代码为什么会出现汉字...//转为大写String::Strupc(char *s){ data=new char [strlen(s)+1]; for(int i=0;i=97 && s[i]

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/07 14:25:16
求大神,这代码为什么会出现汉字...//转为大写String::Strupc(char *s){  data=new char [strlen(s)+1]; for(int i=0;i=97 && s[i]
x͒n@_eO i-LOU%zLr4m,U A@I("PHӔjlӗ5oY[C*zwvqe\~lQ{ԝQH}h:l\a3Lr=Jzihvu|"}e9#Qޓ(ڻ-5<}Fh E5I)ו+MGH'Tz,ۋֿ3)ʅlkO fY5Fd.")"uM;^QGv+Z; RQO1 a˼]f [;A}[Źxf O(ѠqŬt#@N+13MM0{jgr'q :J*,~q}f ` k 0ۑzc(.T&0:RD/Bul6'V;.dZ 95+_d

求大神,这代码为什么会出现汉字...//转为大写String::Strupc(char *s){ data=new char [strlen(s)+1]; for(int i=0;i=97 && s[i]
求大神,这代码为什么会出现汉字...
//转为大写
String::Strupc(char *s)
{
data=new char [strlen(s)+1];
for(int i=0;i=97 && s[i]

求大神,这代码为什么会出现汉字...//转为大写String::Strupc(char *s){ data=new char [strlen(s)+1]; for(int i=0;i=97 && s[i]
结尾没有手动置结束符 \0 ,在 cout 之前加一句
data[i]='\0';
cout在输出字符数组的时候,是以 \0 作为输出的结束条件的,你没有给末尾添加 \0 ,故 cout 把 h 后边的内存也看做 char 输出了,直到碰到个 \0 ,而这段内存空间存的是什么是未知的,故输出了乱码,那个汉字其实是两个随机字节拼起来正好凑成了个妄而已.