字符串的正确幅值有两种:如下所示
char c[] = "sadad";
char c[6];
strcpy(c, "sadad");
我在编程时犯了如下错误:
char c[];
c[]="sadsa";
程序中有两个错误:
1,没有给数组的长度幅值。在这种情况下,数组的大小如果不显式指定,则需要通过初始化列表来确定大小。例如,在声明和初始化一个字符数组时,可以直接给出字符串常量来确定数组的大小。但是在单独声明一个数组后再赋值字符串常量的情况下,系统无法根据赋值的字符串常量自动确定数组的大小,因为在这种情况下,编译器无法确定所赋值的字符串的长度。因此,需要手动指定数组的大小或者使用字符串处理函数来给数组赋值。
2,无法将字符串幅值到数组中。
char c[10];
c[10] = "sadad";
在C语言中,数组索引是从0开始的,所以c[10]
实际上是数组c
中的第11个元素,而不是数组的大小。如果需要将字符串常量"sadad"赋值给数组,只能使用字符串幅值函数。
最后,打印字符串使用%s格式,打印单个字符使用%c格式。
printf("c=%s",c);