我有一個基本的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