欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++字符數(shù)組的輸入輸出和字符串結(jié)束標志使用講解

 更新時間:2015年09月12日 17:28:05   投稿:goldensun  
這篇文章主要介紹了C++字符數(shù)組的輸入輸出和符串結(jié)束標志使用講解,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下

C++字符數(shù)組的輸入輸出
字符數(shù)組的輸入輸出可以有兩種方法:
1) 逐個字符輸入輸出。

2) 將整個字符串一次輸入或輸出。例如有以下程序段:

  char str[20];
  cin>>str; //用字符數(shù)組名輸入字符串
  cout<<str; //用字符數(shù)組名輸出字符串


在運行時輸入一個字符串,如:

  China↙


在內(nèi)存中,數(shù)組str的狀態(tài)如圖5.9所示,在5個字符的后面自動加了一個結(jié)束符′\0′。


輸出時,逐個輸出字符直到遇結(jié)束符′\0′,就停止輸出。輸出結(jié)果為:

  China


如前所述,字符數(shù)組名str代表字符數(shù)組第一個元素的地址,執(zhí)行“cout<<str;”的過程是從str所指向的數(shù)組第一個元素開始逐個輸出字符,直到遇到′\0′為止。

關(guān)于字符數(shù)組的輸入輸出請注意以下幾點:
輸出的字符不包括結(jié)束符′\0′。
輸出字符串時,cout流中用字符數(shù)組名,而不是數(shù)組元素名。
如果數(shù)組長度大于字符串實際長度,也只輸出到遇′\0′結(jié)束。
如果一個字符數(shù)組中包含一個以上′\0′,則遇第一個′\0′時輸出就結(jié)束。
用cin從鍵盤向計算機輸入一個字符串時,從鍵盤輸入的字符串應(yīng)短于已定義的字符數(shù)組的長度,否則會出現(xiàn)問題。

C++提供了cin流中的getline函數(shù),用于讀入一行字符(或一行字符中前若干個字符),使用安全又方便。


C++字符串和字符串結(jié)束標志

用一個字符數(shù)組可以存放一個字符串中的字符。如:

  char str[12]={'I',' ','a','m',' ','h','a','p','p','y'};


用一維字符數(shù)組str來存放一個字符串″I am happy″中的字符。字符串的實際長度(10)與數(shù)組長度(12)不相等,在存放上面10個字符之外,系統(tǒng)對字符數(shù)組最后兩元素自動填補空字符′\0′。

為了測定字符串的實際長度,C++規(guī)定了一個“字符串結(jié)束標志”,以字符′\0′代表。在上面的數(shù)組中,第11個字符為′\0′,就表明字符串的有效字符為其前面的10個字符。也就是說,遇到字符′\0′就表示字符串到此結(jié)束,由它前面的字符組成字符串。

對一個字符串常量,系統(tǒng)會自動在所有字符的后面加一個′\0′作為結(jié)束符。例如字符串″I am happy″共有10個字符,但在內(nèi)存中它共占11個字節(jié),最后一個字節(jié)′\0′是由系統(tǒng)自動加上的。

在程序中往往依靠檢測′\0′的位置來判定字符串是否結(jié)束,而不是根據(jù)數(shù)組的長度來決定字符串長度。當然,在定義字符數(shù)組時應(yīng)估計實際字符串長度,保證數(shù)組長度始終大于字符串實際長度。如果在一個字符數(shù)組中先后存放多個不同長度的字符串,則應(yīng)使數(shù)組長度大于最長的字符串的長度。

說明:′\0′只是一個供辨別的標志。

如果用以下語句輸出一個字符串:

  cout<<″
  How do you do?″;


系統(tǒng)在執(zhí)行此語句時逐個地輸出字符,那么它怎么判斷應(yīng)該輸出到哪個字符就停止了呢?

下面再對字符數(shù)組初始化補充一種方法:用字符串常量來初始化字符數(shù)組。例如:

  char str[]={″I am happy″};


也可以省略花括號,直接寫成

  char str[]=″I am happy″;


不是用單個字符作為初值,而是用一個字符串(注意字符串的兩端是用雙撇號而不是單撇號括起來的)作為初值。顯然,這種方法直觀,方便,符合人們的習(xí)慣。注意:數(shù)組str的長度不是10,而是11(因為字符串常量的最后由系統(tǒng)加上一個′\0′)。因此,上面的初始化與下面的初始化等價:
 

  char str[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};


而不與下面的等價:

  char str[]={'I',' ','a','m',' ','h','a','p','p','y'};


前者的長度為11,后者的長度為10。如果有

  char str[10]=″China″;


數(shù)組str的前5個元素為′C′,′h′,′i′,′n′,′a′,第6個元素為′\0′,后4個元素為空字符。見圖。

需要說明的是:字符數(shù)組并不要求它的最后一個字符為′\0′,甚至可以不包含′\0′。如以下這樣寫完全是合法的:

  char str[5]={'C','h','i','n','a'};


是否需要加′\0′,完全根據(jù)需要決定。但是由于C++編譯系統(tǒng)對字符串常量自動加一個′\0′。因此,人們?yōu)榱耸固幚矸椒ㄒ恢?,便于測定字符串的實際長度,以及在程序中作相應(yīng)的處理,在字符數(shù)組中有效字符的后面也人為地加上一個′\0′。如:

  char str [6]={'C','h','i','n','a','\0'};

相關(guān)文章

  • C語言利用sprintf固定字符串輸出位數(shù)

    C語言利用sprintf固定字符串輸出位數(shù)

    sprintf?函數(shù)是一個?C?語言中的函數(shù),也被許多其他編程語言所支持。這篇文章主要介紹了C語言如何利用sprintf固定字符串輸出位數(shù),需要的可以參考一下
    2023-03-03
  • C語言魔方陣的三種實現(xiàn)方法

    C語言魔方陣的三種實現(xiàn)方法

    大家好,本篇文章主要講的是C語言魔方陣的三種實現(xiàn)方法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語言實現(xiàn)外賣管理系統(tǒng)

    C語言實現(xiàn)外賣管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)外賣管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Ubuntu配置sublime text 3的c編譯環(huán)境的具體步驟

    Ubuntu配置sublime text 3的c編譯環(huán)境的具體步驟

    下面小編就為大家?guī)硪黄猆buntu配置sublime text 3的c編譯環(huán)境的具體步驟。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • C++實現(xiàn)的一個可以寫遞歸lambda的Y函數(shù)

    C++實現(xiàn)的一個可以寫遞歸lambda的Y函數(shù)

    這篇文章主要介紹了C++實現(xiàn)的一個可以寫遞歸lambda的Y函數(shù),在Y函數(shù)的幫助,這個lambda表達是可以成功看到自己,然后遞歸調(diào)用的,需要的朋友可以參考下
    2014-07-07
  • 如何在C++中通過模板去除強制轉(zhuǎn)換

    如何在C++中通過模板去除強制轉(zhuǎn)換

    本文講解的是如何在C++中通過模板去除強制轉(zhuǎn)換,在編程工作中應(yīng)盡量少使用強制類型轉(zhuǎn)換,模板有助于我們實現(xiàn)這一目的,需要的朋友可以參考下
    2015-07-07
  • C語言帶你學(xué)會位段相關(guān)知識

    C語言帶你學(xué)會位段相關(guān)知識

    這篇文章主要介紹了什么是位段,位段的聲明和結(jié)構(gòu)是類似的,位段的成員必須是 int、unsigned int 或signed int;位段的成員名后邊有一個冒號和一個數(shù)字,本文有詳細的代碼案例,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • C++實現(xiàn)讀寫ini配置文件的示例代碼

    C++實現(xiàn)讀寫ini配置文件的示例代碼

    配置文件的讀取是每個程序必備的功能,配置文件的格式多種多樣,例如:ini格式、json格式、xml格式等。其中屬ini格式最為簡單,且應(yīng)用廣泛。本文和大家分享了C++讀寫ini配置文件的方法,需要的可以參考一下
    2023-05-05
  • C語言實現(xiàn)靜態(tài)順序表的實例詳解

    C語言實現(xiàn)靜態(tài)順序表的實例詳解

    這篇文章主要介紹了C語言實現(xiàn)靜態(tài)順序表的實例詳解的相關(guān)資料,這里提供是幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • C語言實現(xiàn)查詢自動售貨機中的商品價格【實例分享】

    C語言實現(xiàn)查詢自動售貨機中的商品價格【實例分享】

    本文主要介紹了C語言實現(xiàn)查詢自動售貨機中的商品價格的相關(guān)資料。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04

最新評論