當前位置:學者齋 >

計算機 >C語言 >

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

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()很快就會發現一個。但是這樣做是不靠譜的!

  • 文章版權屬於文章作者所有,轉載請註明 https://xuezhezhai.com/zh-mo/jsj/cyuyan/wlxxk4.html