对于字符串定义比如:
char a[5] = {0};
这就是定了一个长度为5的字符串。
但在程序中用scanf输入却只能输入四个字符,程序如下:
运行:
运行结果与预期无误,用scanf将长度为4的字符串赋给a,但a定义的长度为5,如果输入长度为5的字符字符串会怎么样呢
如图出现段错误,因为用scanf输入时,以回车结束,但在字符串中,回车也是一个字符,所以字符串的实际长度超出范围,因而出现段错误。
为避免这种情况,可以将字符串的长度定义的大一点。
对于字符串定义比如:
char a[5] = {0};
这就是定了一个长度为5的字符串。
但在程序中用scanf输入却只能输入四个字符,程序如下:
运行:
运行结果与预期无误,用scanf将长度为4的字符串赋给a,但a定义的长度为5,如果输入长度为5的字符字符串会怎么样呢
如图出现段错误,因为用scanf输入时,以回车结束,但在字符串中,回车也是一个字符,所以字符串的实际长度超出范围,因而出现段错误。
为避免这种情况,可以将字符串的长度定义的大一点。