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

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

關于C++ string和c類型字符數組的對比

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

在c++中string是很方便操作的字符串,支持多種算數運算和比較運算,操作起來非常靈活。string也具有一些容器的性質,可以通過迭代器對字符元素進行訪問

c類型的字符數組有如下三種初始化方式:

//前兩種的初始化方式是等同的,最后一種沒有‘/0'char *cp="hello";char c_arr[]="hello";char c_arr2[]={'h','e','l','l','o'};

這三種定義c字符串的方式,其中前兩種雖然形式不一樣但含義是一摸一樣的,沒有差別,在計算字符長度的時候都會比實際顯示的字符長度多1,因為這兩種初始化會在字符串末尾默認添加了一個‘/0'。而第三種初始化方式的長度就是方括號里的字符數,這種方式并不會默認末尾結束符'/0'。如果用第三種方式聲明和前兩種方式同樣的字符串則需這樣聲明:

char c_arr2[]={'h', 'e', 'l', 'l', 'o', '/0' };

string可以用c字符串進行初始化,如

string s1(cp);//復制cp中的所有字符到s1中(除了末尾空字符'/0')string s2(c_arr,2);//復制c_arr兩個字符到s2中string s3(c_arr2);//error

但注意,當對string用c字符串進行初始化時,或是指定初始化的長度(如string s2(c_arr,2);),如果不指定長度需要c字符串必須以'/0'結尾,如果不是以'/0'結尾則程序會出錯。如代碼(string s3(c_arr2);)程序編譯的時候就會出錯。

string類型也可以轉換成c類型的字符串,可以通過string的成員方法string::c_str()進行轉換。如下

string str("hello");const char *cp=str.c_str();

以上就是小編為大家帶來的關于C++ string和c類型字符數組的對比全部內容了,希望大家多多支持VEVB武林網~


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 封丘县| 永平县| 阆中市| 专栏| 华容县| 酒泉市| 泸溪县| 瓦房店市| 祁东县| 香格里拉县| 靖宇县| 墨玉县| 新巴尔虎右旗| 平利县| 白河县| 兴仁县| 二手房| 治县。| 延寿县| 中西区| 木里| 龙南县| 平泉县| 谷城县| 探索| 玉山县| 芦山县| 尼木县| 安多县| 确山县| 新乡市| 衡阳市| 新乡县| 和田市| 上饶市| 晴隆县| 庆阳市| 墨竹工卡县| 建湖县| 昌乐县| 武穴市|