我有一个基本的C编程问题,这里是情况。如果我正在创建一个字符数组,并且如果我想使用%s转换代码将该数组视为字符串,那么我是否必须包含空零。例如:C字符串空零?
char name[6] = {'a','b','c','d','e','f'};
printf("%s",name);
此控制台输出为:
abcdef
注意,没有一个空零数组中的最后一个元素,但我仍然打印这是一个字符串。
我是新来的编程...所以我读初学者ç书,其中规定,因为我不是在最后一个元素使用空零,我不能把它当作一个字符串。
这与上面的输出相同,尽管我包含了空零。
char name[7] = {'a','b','c','d','e','f','\0'};
printf("%s",name);
这是一些安全漏洞的来源。 – 2010-12-12 22:36:46
+1我喜欢null零:)“那是什么样的零? “零零。” “长零。” “一个浮动零点。” “双零。” ... – pmg 2010-12-12 22:39:09
一般情况下,你会这样做的方式是'char name [7] =“abcdef”(在“”中的字符串字面量自动包含NUL) – 2010-12-12 22:41:48