- 相關推薦
C語言的字符串輸出puts()函數
puts()函數很容易用,只需把字符串地址作作為參數傳遞給它就可以了。下面我們一起來學習一下吧!
puts()函數有兩個特點:
puts()在顯示字符串時會自動在其末尾添加一個換行符。 puts()遇到空字符時就停止輸出,所以必須確保有空字符。
下面兩個示例分別說明puts()的兩個特點。
示例1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | /* 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> |
該程序的輸出如下:
1 2 3 4 5 6 | I'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:
1 2 3 4 5 6 7 8 9 10 11 12 | /* 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> |
下面是該程序的一個示例,可能每次運行結果都不一樣,不同的編譯器輸出的內容有可能不同:
1 | WOW!Side A |
puts()如何知道在何處停止?該函數遇到空字符時就停止輸出。由于dont缺少一個表示結束的空字符,所以它不是一個字符串,因此puts()不知道何處停止。它會一直打印dont后面內存中的內容,直到發現一個空字符為止。為了讓puts()能盡快讀到空字符,我們把dont放在side_a和side_b之間,上面是該程序的一個運行示例,不同的編譯器輸出的內容有可能不同
通常內存中有許多空字符,如果幸運的話,puts()很快就會發現一個。但是這樣做是不靠譜的!
【C語言的字符串輸出puts()函數】相關文章:
C語言之字符串處理函數08-31
C語言字符串操作函數及常用的實現10-10
C語言的字符串反轉輸出是什么樣06-26
C語言中返回字符串函數的實現方法09-19
C語言字符串處理的庫函數有哪些06-24
C語言中字符串常用函數strcat與strcpy的用法10-12
8種C語言基本常用的字符串處理函數05-30
C語言字符串07-24
C語言實現返回字符串函數的方法有哪些07-10
C語言輸出菱形的方法07-31