程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 關注C++細節——標准庫string類型

關注C++細節——標准庫string類型

編輯:C++入門知識

 

一. 首先作為一種標准庫類型,string存在四種基本的構造函數。如下:

string s;  //默認構造函數,s為空串

string s(s1);//用s1來初始化s

string s("My Blog http://www.BkJia.com");  //將s初始化為一個字符串字面值

string s(n,'c'); //將s初始化為n個‘c’的副本

二.對於輸入主要就是cin>>s;

(1)讀取並忽略開頭所有的空白字符。

(2)讀取字符直至再次遇到空白字符,讀取終止。

(3)輸入操作符會返回所讀的數據流。

當要讀入一整行時可以使用getline函數,getline函數需要兩個參數第一個為輸入流   對象,第二個為一個string類型對象。值得注意的是getline並不忽略行開頭的空白字       符。

三.string::size_type類型

(1)size()函數我們平時都直接默認它返回int類型的值,事實上size()函數返回的是string::size_type類型的值。

(2)string類類型和許多其他類型都定義了一些配套類型。重要的是通過這種配套類型,庫類型的使用就能與機器無關。size_type就是這些配套類型中的一種。 

(3)建議string的size操作結果的變量為string::size_type類型。特別重要的是,盡量 不要把size的返回值賦值給一個int變量。

四.string對象的相加注意

 當進行string對象和字符串字面值混合連接操作時,+操作符的左右操作數必

須至少有一個是string類型的對象。

例.s2=“world”;       string  s=“hellow”+“,”+s2;這裡是錯誤的,因為第一個+

 號的兩邊都為string字面值。

五.string轉為char *

 很多時候我們還是需要將string類型的轉化為char*來實現自定義的操作,

C++標准庫也為了和之前用C寫的程序兼容,於是可以用string的c_str()函數。

string a="My Blog www.2cto.com";

char * b=a.c_str();//這樣不能通過編譯,原因是為了防止string對象內容被惡意修改,返回的是const類型的對象,所以要加const修飾

const char * b=a.c_str();//這樣就能編譯通過了。

簡單總結了一點string使用時的注意事項,歡迎大家補充交流!

  


 

作者 凌風

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