程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 關於C++ string和c類型字符數組的比較

關於C++ string和c類型字符數組的比較

編輯:關於C++

關於C++ string和c類型字符數組的比較。本站提示廣大學習愛好者:(關於C++ string和c類型字符數組的比較)文章只能為提供參考,不一定能成為您想要的結果。以下是關於C++ string和c類型字符數組的比較正文


在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類型字符數組的比較全體內容了,願望年夜家多多支撐~

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