c++, char ,用法, 结构中的 字符数组

本文详细解析了在C语言中如何正确地将字符串赋值给结构体成员,包括常量字符串的限制及如何避免数组越界的问题。通过使用`strcpy()`函数和字符串初始化,确保了数据的安全性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

struct student
{
int x;
char name[10];
};

 

void main()
{
student st;
st.name=     ?       ;                 

}

 

使用解释一:

st.name="123"; 非法,常量字符串不能直接赋值给字符数组;
因为st.name 地址是确定的,不能再改了。 
但:
char name[10]="123";可以,是被允许的;
定义时,进行初始化字符数组。
 
那结构中怎么办?
字符串就用:
strcpy( st.Number , "123\0");         // 使用技巧:用于赋值的字符串末尾最后加上"\0";原因,避免在再分配数组的空间没有被占用时,出现乱码。
要是数字的话则:
sprintf( st.Number , "%d" , 123 );
 
char name[10];  使用数组时,最好先清零。
使用memset;或者 简单点直接:char name[10]={0};


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值