注册 登录
编程论坛 C++教室

结果怎么会是这样的?

yz15785157 发布于 2007-05-14 20:37, 387 次点击
以下是一个简单的使用类的程序:
#include"iostream.h"
#include"string.h"
class A
{ private:
char s1[10],s2[10];
public:
A(char a1[10],char a2[10]);
};
A::A(char a1[10],char a2[10])
{ s1[10]=a1[10];
s2[10]=a2[10];
cout<<s1<<s2<<endl;
}
void main()
{ A a("ty","ui");
}
怎么运行的时候结果是:烫烫烫烫烫烫?????
按道理应该是输出:ty ui啊
3 回复
#2
leeco2007-05-14 21:48


#include \"iostream.h\"
#include \"string.h\"


class A{
private:
    char s1[10],s2[10];
public:
    A(char a1[10],char a2[10]);
};


A::A(char a1[10],char a2[10])
{
    strcpy(s1,a1);
    strcpy(s2,a2);
    cout<<s1<<s2<<endl;
}
void main()
{
    A a(\"ty\",\"ui\");
}

#3
kisscjy2007-05-14 22:18
LZ~~~~
A::A(char a1[10],char a2[10])
{ s1[10]=a1[10];
s2[10]=a2[10];
cout<<s1<<s2<<endl;
}

是将a1[10]的值给s1[10];
而a1[10]的值不存在
所以造成乱码

应该用ls的strcpy(s1,a1);

#4
raulxxyuer2007-05-14 23:02
1