亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

深入解析C++中的字符數組和處理字符串的方法

2020-05-23 14:14:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了深入解析C++中的字符數組和處理字符串的方法,需要的朋友可以參考下
 

C++字符數組
用來存放字符數據的數組是字符數組,字符數組中的一個元素存放一個字符。字符數組具有數組的共同屬性。由于字符串應用廣泛,C和C++專門為它提供了許多方便的用法和函數。
字符數組的定義和初始化

定義字符數組的方法與前面介紹的類似。例如:
 

  1. char c[10]; 
  2. c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;c[9]=′y′; 
?

上面定義了c為字符數組,包含10個元素。在賦值以后數組的狀態如圖所示。

深入解析C++中的字符數組和處理字符串的方法
對字符數組進行初始化,最容易理解的方式是逐個字符賦給數組中各元素。如

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

把10個字符分別賦給c[0]~c[9]這10個元素。

如果花括號中提供的初值個數大于數組長度,則按語法錯誤處理。如果初值個數小于數組長度,則只將這些字符賦給數組中前面那些元素,其余的元素自動定為空字符。如果提供的初值個數與預定的數組長度相同,在定義時可以省略數組長度,系統會自動根據初值個數確定數組長度。如:

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


也可以定義和初始化一個二維字符數組,如
   

復制代碼代碼如下:
char diamond[5][5]={{' ',' ','*'},{' ', '*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};

字符數組的賦值與引用

 

只能對字符數組的元素賦值,而不能用賦值語句對整個數組賦值。如:
 

  1. char c[5]; 
  2. c={'C','h','i','n','a'}; //錯誤,不能對整個數組一次賦值 
  3. c[0]='C'; c[1]='h';c[2]='i';c[3]='n';c[4]='a'//對數組元素賦值,正確 
?

如果已定義了a和b是具有相同類型和長度的數組,且b數組已被初始化,請分析:
 

  1. a=b; //錯誤,不能對整個數組整體賦值 
  2. a[0]=b[0]; //正確,引用數組元素 
?

【例】設計和輸出一個鉆石圖形。
 

  1. #include <iostream> 
  2. using namespace std; 
  3. void main( ) 
  4.   char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}}; 
  5.   int i,j; 
  6.   for (i=0;i<5;i++) 
  7.   { 
  8.    for (j=0;j<5;j++) 
  9.    cout<<diamond[i][j]; //逐個引用數組元素,每次輸出一個字符 
  10.    cout<<endl; 
  11.   } 
?

深入解析C++中的字符數組和處理字符串的方法

C++處理字符串的方法—字符串類與字符串變量
用字符數組來存放字符串并不是最理想和最安全的方法。

C++提供了一種新的數據類型——字符串類型(string類型),在使用方法上,它和char、int類型一樣,可以用來定義變量,這就是字符串變量——用一個名字代表一個字符序列。

實際上,string并不是C++語言本身具有的基本類型,它是在C++標準庫中聲明的一個字符串類,用這種類可以定義對象。每一個字符串變量都是string類的一個對象。
字符串變量的定義和引用

1) 定義字符串變量
和其他類型變量一樣,字符串變量必須先定義后使用,定義字符串變量要用類名string。如:
 

  1. string string1; //定義string1為字符串變量 
  2. string string2=″China″; //定義string2同時對其初始化 
?

應當注意:要使用string類的功能時,必須在本文件的開頭將C++標準庫中的string頭文件包含進來,即應加上
 

  1. #include <string> //注意頭文件名不是string.h 
?

2) 對字符串變量的賦值
在定義了字符串變量后,可以用賦值語句對它賦予一個字符串常量,如:

  1. string1=″Canada″; 


既可以用字符串常量給字符串變量賦值,也可以用一個字符串變量給另一個字符串變量賦值。如:

?
  1. string2=string1; //假設string2和string1均已定義為字符串變量 


不要求string2和string1長度相同,假如string2原來是″China″,string1原來是″Canada″,賦值后string2也變成″Canada″。在定義字符串變量時不需指定長度,長度隨其中的字符串長度而改變。

可以對字符串變量中某一字符進行操作,如:
 

  1. string word=″Then″; //定義并初始化字符串變量word 
  2. word[2]=′a′; //修改序號為2的字符,修改后word的值為″Than″ 
?

3) 字符串變量的輸入輸出
可以在輸入輸出語句中用字符串變量名,輸入輸出字符串,如:

?
  1. cin>> string1; //從鍵盤輸入一個字符串給字符串變量string1 
  2. cout<< string2; //將字符串string2輸出 


字符串變量的運算

在上一節中可以看到: 在以字符數組存放字符串時,字符串的運算要用字符串函數,如strcat(連接)、strcmp(比較)、strcpy(復制),而對string類對象,可以不用這些函數,而直接用簡單的運算符。

1) 字符串復制用賦值號
 

  1. string1=string2; 
?

其作用與“strcpy(string1,string2);”相同。

2) 字符串連接用加號

?
  1. string string1=″C++″; //定義string1并賦初值 
  2. string string2=″Language″;//定義string2并賦初值 
  3. string1=string1 + string2;//連接string1和string2 


連接后string1為″C++ Language″。

3) 字符串比較直接用關系運算符
可以直接用 ==(等于)、>(大于)、<(小于)、!=(不等于)、>=(大于或等于)、<=(小于或等于)等關系運算符來進行字符串的比較。
字符串數組

不僅可以用string定義字符串變量,也可以用string定義字符串數組。如:
 

  1. string name[5]; //定義一個字符串數組,它包含5個字符串元素 
  2. string name[5]={″Zhang″, ″Li″, ″Fun″, ″Wang″, ″Tan″}; //定義一個字符串數組并初始化 
?

此時name數組的狀況如圖所示。

深入解析C++中的字符數組和處理字符串的方法
關于字符串數組的幾點說明:
在一個字符串數組中包含若干個(現為5個)元素,每個元素相當于一個字符串變量。
并不要求每個字符串元素具有相同的長度,即使對同一個元素而言,它的長度也是可以變化的,當向某一個元素重新賦值,其長度就可能發生變化。
在字符串數組的每一個元素中存放一個字符串,而不是一個字符,這是字符串數組與字符數組的區別。如果用字符數組存放字符串,一個元素只能存放一個字符,用一個一維字符數組存放一個字符串。
每一個字符串元素中只包含字符串本身的字符而不包括′/0′。

可見用字符串數組存放字符串以及對字符串進行處理是很方便的。

在定義字符串數組時怎樣給數組分配存儲空間呢?實際上,編譯系統為每一個字符串變量分配4個字節,在這個存儲單元中,并不是直接存放字符串本身,而是存放字符串的地址。在本例中,就是把字符串″Zhang″的地址存放在name[0],把字符串″Li″ 的地址存放在name[1],把字符串″Fun″的地址存放在name[2]……上只是一個示意圖。在字符串變量中存放的是字符串的指針(字符串的地址)。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲男子天堂网| www.99久久热国产日韩欧美.com| 国产精品久久久久久久久久久久| 色噜噜久久综合伊人一本| 欧美一区二区三区免费观看| 日韩在线中文字幕| 亚洲片在线资源| 911国产网站尤物在线观看| 国产精品久久久久不卡| 久久精品国产一区二区电影| 国内外成人免费激情在线视频网站| 久久九九热免费视频| 日韩美女免费线视频| 日本亚洲欧洲色α| 欧美插天视频在线播放| 97婷婷涩涩精品一区| 免费不卡欧美自拍视频| 国产一区二区三区视频免费| 中文字幕在线日韩| 国产精品一区=区| 国产在线精品一区免费香蕉| 91精品国产99久久久久久| 成人在线激情视频| 色www亚洲国产张柏芝| 国产午夜精品视频| 亚洲天堂网站在线观看视频| 91亚洲国产成人久久精品网站| 91av视频在线观看| 亚洲小视频在线观看| 久久精品国产一区二区电影| 国内精久久久久久久久久人| 国产精品一区av| 成人性生交大片免费看视频直播| 91精品国产高清久久久久久| 精品人伦一区二区三区蜜桃免费| 久久精品国产久精国产一老狼| 91网在线免费观看| 国色天香2019中文字幕在线观看| 久久精品中文字幕| 最近免费中文字幕视频2019| 国产精品一区二区三区久久久| 国产午夜精品一区二区三区| 亚洲成人国产精品| 97在线免费观看| 色婷婷**av毛片一区| 色系列之999| 欧美激情综合亚洲一二区| 日韩欧美中文字幕在线观看| 亚洲欧美国产高清va在线播| 久久久爽爽爽美女图片| 亚洲视频在线播放| 欧美精品xxx| 欧美综合第一页| 欧美激情综合亚洲一二区| 91国产美女视频| 国产女同一区二区| 欧美日韩国产中文精品字幕自在自线| 国产成人一区二区| 国产精品久久久久久av福利软件| 日韩一区二区三区xxxx| 精品久久久久久久久久国产| 亚洲老板91色精品久久| 欧美激情在线观看视频| 国产成人一区二| 国产免费一区二区三区在线能观看| 午夜精品久久久久久久白皮肤| 日韩中文在线视频| 久久国产精品影片| 欧美丰满老妇厨房牲生活| 国产性色av一区二区| 色哟哟亚洲精品一区二区| 亚洲第一精品夜夜躁人人爽| 久久精品国产清自在天天线| 日韩美女av在线| 91精品国产高清久久久久久91| 黄色成人在线播放| 久久久成人精品视频| 国内精品久久久久伊人av| 91亚洲精华国产精华| 国产精品永久免费视频| 久久久久久久久久久国产| 亚洲福利视频专区| 国外色69视频在线观看| 亚洲美女中文字幕| 国产精品wwwwww| 日韩av资源在线播放| 欧美另类69精品久久久久9999| 欧美一乱一性一交一视频| 日韩精品在线观看视频| 日韩中文字幕网址| 日韩av影院在线观看| 最新国产精品亚洲| 98精品国产自产在线观看| 91精品久久久久久久久久久| 亚洲专区在线视频| 性亚洲最疯狂xxxx高清| 欧美成人精品影院| 国产大片精品免费永久看nba| 日韩欧亚中文在线| 欧美丰满少妇xxxxx| 国产欧美精品va在线观看| 日韩国产中文字幕| 欧美乱妇高清无乱码| 国外成人在线视频| 欧洲精品久久久| 亚洲精品小视频| 欧美日韩国产中文字幕| 2018国产精品视频| 亚洲精品综合精品自拍| 亚洲电影免费观看高清完整版| 久久久久成人网| 久久久久久这里只有精品| 欧洲成人午夜免费大片| 在线精品国产成人综合| 亚洲精品美女久久久久| 隔壁老王国产在线精品| 久久91超碰青草是什么| 国产极品精品在线观看| 日韩在线观看视频免费| 91成人性视频| 国产美女精品视频免费观看| 日韩一区视频在线| 亚洲精品自在久久| 国产91精品视频在线观看| 在线日韩欧美视频| 国产一区二区久久精品| 在线观看精品自拍私拍| 亚洲区一区二区| 精品国产一区av| 国产精品国产自产拍高清av水多| 久久视频国产精品免费视频在线| 亚洲精品久久久久| 欧美裸体xxxx极品少妇| 欧美日韩国产影院| 日韩美女视频免费看| 国产美女久久精品香蕉69| 欧美大胆在线视频| 久久久久久久爱| 日韩在线观看免费全集电视剧网站| 精品视频一区在线视频| 91日韩在线视频| 91av视频导航| 秋霞av国产精品一区| 欧美精品一二区| 亚洲精品资源在线| 日韩精品高清在线观看| 欧美日韩美女视频| 欧美午夜视频在线观看| 日韩成人xxxx| 久久亚洲精品一区二区| 91精品国产91久久久久久不卡| 亚洲xxxxx性| 国内成人精品视频| 欧美xxxx综合视频| 日本高清视频一区| 51久久精品夜色国产麻豆| 91产国在线观看动作片喷水| 欧美视频在线观看免费网址| 国产精品久久91| 亚洲加勒比久久88色综合| 欧美日本高清视频| 激情成人中文字幕| 亚洲乱亚洲乱妇无码| 国产精品草莓在线免费观看|