匿名用户
1级
2007-10-29 回答
c++不能直接对字符数组赋予一个字符串,因为字符数组名是一个常量,不是左值。可以使用strcpy或者strncpy函数,strncpy可以限制输入的长度,防止溢出。
#include
#include
typedef struct
{
int num;
char name[10];
}stu;
stu x[5];
void main()
{
int i;
for(i=0;i<5;i++)
x[i].num=i;
/*通过strncpy函数给字符数组赋值*/
strncpy(x[0].name,"小明",sizeof(x[0].name));
strncpy(x[1].name,"小宝",sizeof("x[1].name"));
strncpy(x[2].name,"小曹",sizeof("x[2].name"));
strncpy(x[3].name,"小王",sizeof("x[3].name"));
strncpy(x[4].name,"小李",sizeof("x[4].name"));
for(i=0;i<5;i++)
cout<
}
当然如果用你自己的方法也可以,
只要把结构体中的name换成字符指针就可以了,
如下:
#include
#include
#include
typedef struct
{
int num;
char * name;
}stu;
stu x[5];
void main()
{
int i;
for(i=0;i<5;i++)
x[i].num=i;
x[0].name="小明";
x[1].name="小宝";
x[2].name="小曹";
x[3].name="小王";
x[4].name="小李";
for(i=0;i<5;i++)
cout<
}