最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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


在運(yùn)行時(shí)輸入一個(gè)字符串,如:

  China↙


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


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

  China


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

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

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


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

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

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


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

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

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

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

說(shuō)明:′\0′只是一個(gè)供辨別的標(biāo)志。

如果用以下語(yǔ)句輸出一個(gè)字符串:

  cout<<″
  How do you do?″;


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

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

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


也可以省略花括號(hào),直接寫(xiě)成

  char str[]=″I am happy″;


不是用單個(gè)字符作為初值,而是用一個(gè)字符串(注意字符串的兩端是用雙撇號(hào)而不是單撇號(hào)括起來(lái)的)作為初值。顯然,這種方法直觀,方便,符合人們的習(xí)慣。注意:數(shù)組str的長(zhǎng)度不是10,而是11(因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)′\0′)。因此,上面的初始化與下面的初始化等價(jià):
 

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


而不與下面的等價(jià):

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


前者的長(zhǎng)度為11,后者的長(zhǎng)度為10。如果有

  char str[10]=″China″;


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

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

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


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

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

相關(guān)文章

  • 純C語(yǔ)言:遞歸組合數(shù)源碼分享

    純C語(yǔ)言:遞歸組合數(shù)源碼分享

    這篇文章主要介紹了純C語(yǔ)言:遞歸組合數(shù)源碼,有需要的朋友可以參考一下
    2014-01-01
  • C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的方法

    C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的方法

    這篇文章主要介紹了C語(yǔ)言字符串轉(zhuǎn)換為Python字符串的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C語(yǔ)言實(shí)現(xiàn)自動(dòng)發(fā)牌程序

    C語(yǔ)言實(shí)現(xiàn)自動(dòng)發(fā)牌程序

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)自動(dòng)發(fā)牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++ OpenCV單峰三角閾值法Thresh_Unimodal詳解

    C++ OpenCV單峰三角閾值法Thresh_Unimodal詳解

    本文主要介紹了適合當(dāng)圖像的直方圖具有明顯單峰特征時(shí)使用,結(jié)合了三角法的原理而設(shè)計(jì)的圖像分割方法,感興趣的小伙伴可以了解一下
    2021-12-12
  • 帶你了解C++中的sort函數(shù)

    帶你了解C++中的sort函數(shù)

    這篇文章主要給大家介紹了關(guān)于C++中sort函數(shù)的基礎(chǔ)入門(mén)使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧
    2021-08-08
  • C++ STL中vector容器的使用

    C++ STL中vector容器的使用

    這篇文章主要為大家詳細(xì)介紹了C++ vector容器的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • c語(yǔ)言網(wǎng)絡(luò)編程-標(biāo)準(zhǔn)步驟(比較簡(jiǎn)單)

    c語(yǔ)言網(wǎng)絡(luò)編程-標(biāo)準(zhǔn)步驟(比較簡(jiǎn)單)

    這篇文章主要介紹了c語(yǔ)言網(wǎng)絡(luò)編程-標(biāo)準(zhǔn)步驟(比較簡(jiǎn)單),需要的朋友可以參考下
    2014-01-01
  • 一文詳解C++模板和泛型編程

    一文詳解C++模板和泛型編程

    這篇文章主要為為大家為大家詳細(xì)的介紹了C++模板和泛型編程使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 詳解C++ cin.getline函數(shù)

    詳解C++ cin.getline函數(shù)

    這篇文章主要介紹了C++ cin.getline函數(shù)的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-09-09
  • C語(yǔ)言計(jì)算大數(shù)相加的方法

    C語(yǔ)言計(jì)算大數(shù)相加的方法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言計(jì)算大數(shù)相加的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05

最新評(píng)論

宝坻区| 大城县| 枝江市| 藁城市| 库伦旗| 军事| 威海市| 喜德县| 庄浪县| 晋州市| 马龙县| 鞍山市| 太仓市| 乌鲁木齐市| 江孜县| 秭归县| 闻喜县| 高唐县| 高要市| 会泽县| 武义县| 公主岭市| 奉新县| 新晃| 雷州市| 安乡县| 西贡区| 威海市| 淳化县| 佛山市| 芜湖市| 双牌县| 江城| 乐安县| 陆良县| 肃北| 潮安县| 米林县| 阳谷县| 清新县| 蒲江县|