NOTE:
eclipse支持C++11:g++ -std=c++11
增加編譯選項,g++ 版本 4.8.1 及以上支持c++11
字符串字面值是 const char *
類型,不是 string 類型。
string
的輸入運算符自動忽略開頭空白,從真正字符讀起,直到遇見下一次空白(空格、換行、製表等)。;getline
會原樣保留空白。(遇換行符都會結束當次輸入)
頭文件中最好不用 using 聲明,以免造成衝突。
string
對象會自動忽略開頭空白。
範圍
for語句 和
auto關鍵字,拷貝或引用
str`的每個字符。
for(auto &c:str)
{
c = 'X';
}
儘量使用C++中的對應頭文件。
decltype(s.size()) size=0;
來聲明string
尺寸類型; 使用 assert 來斷言下標未越界。
using s_size = string::size_type;
等價於 typedef string::size_type size
類型定義
string
初始化
string s;
默認初始化,空
string s2(s1);
s2是s1的副本
string s2 = s1;
與上等價
string s3("val");
副本,除了最後的空字符
string s3 = "val";
與上等價
string s4(n,'c')
n個 c 字符組成s4
使用等號初始化一個變量執行拷貝初始化,否則執行直接初始化。
string 對象上的操作
basic_istream<char>& getline(basic_istream<char>&, string&, char);
未遇到邊界時讀取一行,否則讀到邊界並拋棄邊界符。
basic_istream<char>& getline(basic_istream<char>&, string&);
上面邊界符號爲 ‘\n’
的情況。
os<<s;
將s
寫到輸出流os
中,返回os
.
is>>s;
從is
中讀取字符串賦給s
,字符串以空白分隔,返回is
.
s.empty()
s.size()
字符個數
s[n]
第n個字符的引用,從0開始
+、=、==、!=、<、<=、>、>=
字符處理 #include <cctype>
isalnum(c)
字母或數字時爲真
isalpha(c)
字母
iscntrl(c)
控制字符
isdigit(c)
數字
isgraph(c)
不是空格但可打印
islower(c)
小寫字母
ispunct(c)
標點符號
isspace(c)
空白(空格、橫(縱)向製表符、回車符、換行符、進紙符)
isprint(c)
可打印(空格或可視)
isupper(c)
大寫字母
isxdigit(c)
十六進制數字
tolower(c)
轉小寫
toupper(c)
轉大寫
C++string類常用函數
C++string類常用函數 > http://www.cppblog.com/lmlf001/archive/2006/04/19/5883.html