关于strncpy的一个奇怪的问题
最近在使用strncpy的时候翻看谭浩强的《C程序设计(第四版)》,在163页说明的第(5)条看到一段话,意思是说,在使用strncpy(str1,str2,n)的时候,n不能超过str1中的字符个数。比如有如下程序:
char str1[10]={"China"},str2[]={"republic of China"};
strncpy(str1,str2,n);
printf("%s",str1);
则第二句中的n要求不能超过5.
但是,在上述程序中将n改为比5大的数的时候程序照样运行,并输出正确结果。
问题是:
是不是在strncpy(str1,str2,n)中只要n不超过str1的元素个数即可,如上例,n不超过10就行,是不是这样?恳请高手指点。