亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言 百分網(wǎng)手機(jī)站

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

時(shí)間:2020-10-04 08:41:14 C語言 我要投稿

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

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

  puts()函數(shù)有兩個(gè)特點(diǎn):

  puts()在顯示字符串時(shí)會(huì)自動(dòng)在其末尾添加一個(gè)換行符。 puts()遇到空字符時(shí)就停止輸出,所以必須確保有空字符。

  下面兩個(gè)示例分別說明puts()的兩個(gè)特點(diǎn)。

  示例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.

  如上所示,每個(gè)字符串獨(dú)占一行,因?yàn)閜uts()在顯示字符串時(shí)會(huì)自動(dòng)在其末尾添加一個(gè)換行符。

  示例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>

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

1
WOW!Side A

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

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


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

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

C語言字符串的輸入輸出12-08

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

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

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

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

C語言輸出菱形的方法11-24

C語言函數(shù) atoi()10-28

淺談C語言函數(shù)10-22