C語言

當前位置 /首頁/計算機/C語言/列表

C語言的字串輸出puts()函式

puts()函式很容易用,只需把字串地址作作為引數傳遞給它就可以了。下面我們一起來學習一下吧!

C語言的字串輸出puts()函式

  puts()函式有兩個特點:

puts()在顯示字串時會自動在其末尾新增一個換行符。 puts()遇到空字元時就停止輸出,所以必須確保有空字元。

下面兩個示例分別說明puts()的兩個特點。

  示例1:

1234567891011121314151617/* put_out.c -- using puts() */#include <stdio.h>#define DEF "I am a #defined string."int main(void){char str1[80] = "An array was initialized to me.";const char * str2 = "A pointer was initialized to me.";puts("I'm an argument to puts().");puts(DEF);puts(str1);puts(str2);puts(&str1[5]);puts(str2+4);return 0;}</stdio.h>

  該程式的輸出如下:

123456I'm an argument to puts().I am a #defined string.An array was initialized to me.A pointer was initialized to me.ray was initialized to me.inter was initialized to me.

如上所示,每個字串獨佔一行,因為puts()在顯示字串時會自動在其末尾新增一個換行符。

  示例2:

123456789101112/* nono.c -- no! */#include <stdio.h>int main(void){char side_a[] = "Side A";char dont[] = {'W', 'O', 'W', '!' };char side_b[] = "Side B";puts(dont); /* dont is not a string */return 0;}</stdio.h>

下面是該程式的一個示例,可能每次執行結果都不一樣,不同的.編譯器輸出的內容有可能不同:

1WOW!Side A

puts()如何知道在何處停止?該函式遇到空字元時就停止輸出。由於dont缺少一個表示結束的空字元,所以它不是一個字串,因此puts()不知道何處停止。它會一直列印dont後面記憶體中的內容,直到發現一個空字元為止。為了讓puts()能儘快讀到空字元,我們把dont放在side_a和side_b之間,上面是該程式的一個執行示例,不同的編譯器輸出的內容有可能不同

通常記憶體中有許多空字元,如果幸運的話,puts()很快就會發現一個。但是這樣做是不靠譜的!

TAG標籤:字串 語言 輸出 函式 #