国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++字符數組的輸入輸出和字符串結束標志使用講解

2020-05-23 14:14:41
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C++字符數組的輸入輸出和符串結束標志使用講解,是C++入門學習中的基礎知識,需要的朋友可以參考下

C++字符數組的輸入輸出

字符數組的輸入輸出可以有兩種方法:

1) 逐個字符輸入輸出。

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

 

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

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

 

 
  1. China↙ 

在內存中,數組str的狀態如圖5.9所示,在5個字符的后面自動加了一個結束符′/0′。

C++字符數組的輸入輸出和字符串結束標志使用講解

輸出時,逐個輸出字符直到遇結束符′/0′,就停止輸出。輸出結果為:

 

 
  1. China 

如前所述,字符數組名str代表字符數組第一個元素的地址,執行“cout<

關于字符數組的輸入輸出請注意以下幾點:

輸出的字符不包括結束符′/0′。

輸出字符串時,cout流中用字符數組名,而不是數組元素名。

如果數組長度大于字符串實際長度,也只輸出到遇′/0′結束。

如果一個字符數組中包含一個以上′/0′,則遇第一個′/0′時輸出就結束。

用cin從鍵盤向計算機輸入一個字符串時,從鍵盤輸入的字符串應短于已定義的字符數組的長度,否則會出現問題。

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

C++字符串和字符串結束標志

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

 

 
  1. 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′只是一個供辨別的標志。

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

 

 
  1. cout<<″ 
  2. How do you do?″; 

系統在執行此語句時逐個地輸出字符,那么它怎么判斷應該輸出到哪個字符就停止了呢?

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

 

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

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

 

 
  1. char str[]=″I am happy″; 

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

 

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

而不與下面的等價:

 

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

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

 

  1. char str[10]=″China″; 

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

C++字符數組的輸入輸出和字符串結束標志使用講解

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

 

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

是否需要加′/0′,完全根據需要決定。但是由于C++編譯系統對字符串常量自動加一個′/0′。因此,人們為了使處理方法一致,便于測定字符串的實際長度,以及在程序中作相應的處理,在字符數組中有效字符的后面也人為地加上一個′/0′。如:

 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄢陵县| 延寿县| 普安县| 邢台市| 虹口区| 南漳县| 永仁县| 汾西县| 富裕县| 沾益县| 庄河市| 思南县| 屏边| 蚌埠市| 仁布县| 都匀市| 靖宇县| 凌海市| 江安县| 芜湖市| 民勤县| 昭觉县| 杭锦旗| 莱阳市| 和田市| 鄂伦春自治旗| 南部县| 巩义市| 贵南县| 玉溪市| 邹平县| 赤水市| 邛崃市| 石渠县| 万载县| 长治县| 施甸县| 亳州市| 巍山| 恩施市| 平山县|