c语⾔中如何给字符串数组赋值
c语⾔中如何给字符串数组赋值
1.问题
这是我写的
struct student
{
int x;
char name[10];
};
void main()
{
student st;
st.name=    这⾥能不能直接赋值⼀个字符串 “123”;?如果不⽤scranf()
}
2.原因
st.name="123";  ⾮法,字符串不能直接赋值给字符数组,因为st.name 地址是确定的,不能再改了。 char name[10]="123";可以的,定义时,进⾏初始化字符数组。
c语言如何创建字符串数组
3.解决办法
注意:在c语⾔中,⾮字符数组初始化时,不能直接对字符数组进⾏赋值,可以使⽤strcpy对字符数组进⾏赋值
可以⽤string.h,头⽂件⾥⾯的strcpy()函数,拷贝。
strcpy(st.name,"123");
4.strcpy()的作⽤
strcpy()的作⽤将⼀个字符串复制到另⼀个字符数组中。
例:
char a[]="this is my name ,and what's your name";
char b[]="my name is wang tiqn qiao";
strcpy(a,b);//把b字符数组中的内容拷贝a字符数组中
5.strcpy()和strncpy()的区别
strcpy函数连'\0'都复制到⽬标数组。
⽽strncpy函数不把'\0'复制到⽬标数组,有⼀种情况strncpy的效果跟strcpy的效果相同,就是把b数组的整个数组复制过去,包括'\0'.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。