求大神,这代码为什么会出现汉字...//转为大写String::Strupc(char *s){ data=new char [strlen(s)+1]; for(int i=0;i=97 && s[i]
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 03:04:10
![求大神,这代码为什么会出现汉字...//转为大写String::Strupc(char *s){ data=new char [strlen(s)+1]; for(int i=0;i=97 && s[i]](/uploads/image/z/13145933-29-3.jpg?t=%E6%B1%82%E5%A4%A7%E7%A5%9E%2C%E8%BF%99%E4%BB%A3%E7%A0%81%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%87%BA%E7%8E%B0%E6%B1%89%E5%AD%97...%2F%2F%E8%BD%AC%E4%B8%BA%E5%A4%A7%E5%86%99String%3A%3AStrupc%28char+%2As%29%7B++data%3Dnew+char+%5Bstrlen%28s%29%2B1%5D%3B+for%28int+i%3D0%3Bi%3D97+%26%26+s%5Bi%5D)
求大神,这代码为什么会出现汉字...//转为大写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 ,而这段内存空间存的是什么是未知的,故输出了乱码,那个汉字其实是两个随机字节拼起来正好凑成了个妄而已.