欧美日韩不卡一区二区三区,www.蜜臀.com,高清国产一区二区三区四区五区,欧美日韩三级视频,欧美性综合,精品国产91久久久久久,99a精品视频在线观看

C語言

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

時間:2025-06-03 00:11:14 C語言 我要投稿
  • 相關(guān)推薦

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

  puts()函數(shù)很容易用,只需把字符串地址作作為參數(shù)傳遞給它就可以了。下面我們一起來學(xué)習(xí)一下吧!

  puts()函數(shù)有兩個特點:

  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>

  下面是該程序的一個示例,可能每次運行結(jié)果都不一樣,不同的編譯器輸出的內(nèi)容有可能不同:

1
WOW!Side A

  puts()如何知道在何處停止?該函數(shù)遇到空字符時就停止輸出。由于dont缺少一個表示結(jié)束的空字符,所以它不是一個字符串,因此puts()不知道何處停止。它會一直打印dont后面內(nèi)存中的內(nèi)容,直到發(fā)現(xiàn)一個空字符為止。為了讓puts()能盡快讀到空字符,我們把dont放在side_a和side_b之間,上面是該程序的一個運行示例,不同的編譯器輸出的內(nèi)容有可能不同

  通常內(nèi)存中有許多空字符,如果幸運的話,puts()很快就會發(fā)現(xiàn)一個。但是這樣做是不靠譜的!


【C語言的字符串輸出puts()函數(shù)】相關(guān)文章:

C語言字符串的輸入輸出07-03

C語言字符串處理函數(shù)03-01

C語言之字符串處理函數(shù)03-12

C語言的字符串處理函數(shù)strlen()04-27

C語言字符串操作函數(shù)及常用的實現(xiàn)03-16

C語言的字符串反轉(zhuǎn)輸出是什么樣06-26

C語言字符串處理的庫函數(shù)有哪些06-24

C語言字符串操作函數(shù)和常用的實現(xiàn)03-20

C語言中返回字符串函數(shù)的實現(xiàn)方法03-22