程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++字符數組的輸出輸入和字符串停止標記應用講授

C++字符數組的輸出輸入和字符串停止標記應用講授

編輯:關於C++

C++字符數組的輸出輸入和字符串停止標記應用講授。本站提示廣大學習愛好者:(C++字符數組的輸出輸入和字符串停止標記應用講授)文章只能為提供參考,不一定能成為您想要的結果。以下是C++字符數組的輸出輸入和字符串停止標記應用講授正文


C++字符數組的輸出輸入
字符數組的輸出輸入可以有兩種辦法:
1) 逐一字符輸出輸入。

2) 將全部字符串一次輸出或輸入。例若有以下法式段:

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


在運轉時輸出一個字符串,如:

  China↙


在內存中,數組str的狀況如圖5.9所示,在5個字符的前面主動加了一個停止符′\0′。


輸入時,逐一輸入字符直到遇停止符′\0′,就停滯輸入。輸入成果為:

  China


如前所述,字符數組名str代表字符數組第一個元素的地址,履行“cout<<str;”的進程是從str所指向的數組第一個元素開端逐一輸入字符,直到碰到′\0′為止。

關於字符數組的輸出輸入請留意以下幾點:
輸入的字符不包含停止符′\0′。
輸入字符串時,cout流頂用字符數組名,而不是數組元素名。
假如數組長度年夜於字符串現實長度,也只輸入到遇′\0′停止。
假如一個字符數組中包括一個以上′\0′,則遇第一個′\0′時輸入就停止。
用cin從鍵盤向盤算機輸出一個字符串時,從鍵盤輸出的字符串應短於已界說的字符數組的長度,不然會湧現成績。

C++供給了cin流中的getline函數,用於讀入一行字符(或一行字符中前若干個字符),應用平安又便利。


C++字符串和字符串停止標記
用一個字符數組可以寄存一個字符串中的字符。如:

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


用一維字符數組str來寄存一個字符串″I am happy″中的字符。字符串的現實長度(10)與數組長度(12)不相等,在寄存下面10個字符以外,體系對字符數組最初兩元素主動彌補空字符′\0′。

為了測定字符串的現實長度,C++劃定了一個“字符串停止標記”,以字符′\0′代表。在下面的數組中,第11個字符為′\0′,就注解字符串的有用字符為其後面的10個字符。也就是說,碰到字符′\0′就表現字符串到此停止,由它後面的字符構成字符串。

對一個字符串常量,體系會主動在一切字符的前面加一個′\0′作為停止符。例如字符串″I am happy″共有10個字符,但在內存中它共占11個字節,最初一個字節′\0′是由體系主動加上的。

在法式中常常依附檢測′\0′的地位來剖斷字符串能否停止,而不是依據數組的長度來決議字符串長度。固然,在界說字符數組時應估量現實字符串長度,包管數組長度一直年夜於字符串現實長度。假如在一個字符數組中前後寄存多個分歧長度的字符串,則應使數組長度年夜於最長的字符串的長度。

解釋:′\0′只是一個供鑒別的標記。

假如用以下語句輸入一個字符串:

  cout<<″
  How do you do?″;


體系在履行此語句時逐一地輸入字符,那末它怎樣斷定應當輸入到哪一個字符就停滯了呢?

上面再對字符數組初始化彌補一種辦法:用字符串常量來初始化字符數組。例如:

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


也能夠省略花括號,直接寫成

  char str[]=″I am happy″;


不是用單個字符作為初值,而是用一個字符串(留意字符串的兩頭是用雙撇號而不是單撇號括起來的)作為初值。明顯,這類辦法直不雅,便利,相符人們的習氣。留意:數組str的長度不是10,而是11(由於字符串常量的最初由體系加上一個′\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″;


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

須要解釋的是:字符數組其實不請求它的最初一個字符為′\0′,乃至可以不包括′\0′。如以下如許寫完整是正當的:

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


能否須要加′\0′,完整依據須要決議。然則因為C++編譯體系對字符串常量主動加一個′\0′。是以,人們為了使處置辦法分歧,便於測定字符串的現實長度,和在法式中作響應的處置,在字符數組中有用字符的前面也工資地加上一個′\0′。如:

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved