一,如果对 char course[20] 就会报错。
原因分析:
因为在字符串数组中,你在声明这个字符串的时候可以进行初始化
char[20]="123456";
但是不能像下面这样 这段代码
char a[20];
a[20]="123456";
这时候就相当于对一个字符串数组里的一个元素赋值。
并且是不合法的,因为a[20]已经超出了数组容量
下面这个图片 只对course[1]赋值是可以的
解决方案:
需要用到strncpy函数
百度百科:strncpy函数用于将指定长度的字符串复制到字符数组中,是 C语言的库函数之一,来自 C语言标准库,定义于 string.h。
语法形式为:char *strncpy(char *dest, const char *src, int n),表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest。
注意: s1.course=s1.&coure[1] ,但却不能写 &coure[1] , 因为s1后需要跟成员对象名