今天刚刚学习字符串数组,运行过程中发现数组的长度会影响输出的结果
在长度为16及以下时候,一切正常
#include <stdio.h>
#include <string.h>
int main()
{
char s[16],l[16];
gets(s);
puts(s);
strncpy(l,s,3);
strcat(l,s);
puts(l);
}
长度改为17及以上以后,问题出现了,strncpy函数的结果很奇怪
#include <stdio.h>
#include <string.h>
int main()
{
char s[17],l[17];
gets(s);
puts(s);
strncpy(l,s,3);
strcat(l,s);
puts(l);
}
求教
1.是什么导致了以16为节点的这种不同?
2.当数组长度到17及以上时候,在strncpy的结果中
出现了一个'-'符号,是怎么回事?
小弟在此谢过了!