前言
前一篇文章我們已經(jīng)了解了C++中的基本類型,C++還提供了很多抽象數(shù)據(jù)類型,例如字符串string,string包含多個(gè)字符,以及可變長度的vector,vector可以包含多個(gè)同一類型的對象。
使用using聲明
在之前的程序中可以看到我們通過命名空間來解決可能的命名沖突,代碼如下
# include
int main() {
std::cout<<"please enter two numbers:"<
這樣看來每次調(diào)用cin和cout時(shí)都要帶上命名空間和范圍標(biāo)識(shí)符會(huì)顯得比較繁瑣,就像在Java中每次調(diào)用方法都要帶上包名和類名一樣,Java使用import關(guān)鍵字來引入依賴,在C++中則是使用using關(guān)鍵字來解決這個(gè)問題,例如上述例子可以通過using std::cin來表示引入std命名空間內(nèi)的cin。
# include
using std::cin;
using std::cout;
using std::endl;
int main() {
cout<<"please enter two numbers:"<
如果確定程序中沒有命名沖突,可以直接使用using std,不需要分別一一引入,就像Java中直接import一個(gè)類。
# include
using namespace std;
int main() {
cout<<"please enter two numbers:"<
?需要注意的是頭文件不能使用using,因?yàn)轭^文件的內(nèi)容是需要拷貝到引入頭文件的文件當(dāng)中去,如果多個(gè)頭文件使用using引入相同的命名空間,程序無法知道使用哪一個(gè),會(huì)引發(fā)命名沖突。
?
string
字符串是一系列字符的組合,如果需要使用字符串需要引入頭文件string,其也在std命名空間。
string的定義與初始化
string的定義和初始化方法有以下幾種
# include
# include
using std::string;
using std::cout;
using std::endl;
int main() {
string s1; //默認(rèn)初始化,s1是一個(gè)空字符串
string s2 = s1; // s2是s1的拷貝
string s3(s1); //等同于s2 = s1,s3是s1的拷貝
string s4("value"); //s4是value的拷貝
string s5 = "value";
string s6(4, 'c'); // s6是cccc
cout<
string操作
之前我們曾提到一個(gè)對象的類型決定了其存儲(chǔ)的方式以及操作,string支持的操作如下
操作 | 解釋 |
---|---|
os << s | 將字符串寫到輸出流 |
is >> s | 從輸入流中讀取 |
getline(is, s) | 從輸入流中讀取一行 |
s.empty() | 判斷是否為空,如果為空返回true,否則返回false |
s.size() | 返回字符串的長度 |
s[n] | 返回第n個(gè)字符 |
s1 + s2 | 將s1和s2拼接 |
s1 = s2 | 將s2的字符串拷貝給s1 |
s1 == s2 | 判斷s1和s2的字符串是否相等 |
s1 != s2 | 判斷不相等 |
< <= > >= | 比較是大小寫敏感的 |
有時(shí)候在接受輸入時(shí)我我們并不想忽略輸入的空格,這時(shí)候可以使用getline來獲取輸入的一整行。
# include
# include
using std::string;
using namespace std;
int main() {
string line;
while (getline(cin, line))
{
cout<
字符串是由一系列的字符組成,而字符中有一些分類,例如4是一個(gè)數(shù)字字符,a是一個(gè)小寫字母,C++中提供了一些方法可以很方便地判斷字符的類型和做一些操作。
函數(shù) | 解釋 |
---|---|
isalnum | 如果是字母或者數(shù)字返回true |
isalpha | 如果是字母返回true |
iscntrl | 如果是control返回true |
isdigit | 如果是數(shù)字返回true |
isgraph | 如果不是空格但是可打印返回true |
islower | 如果時(shí)小寫字母返回true |
isprint | 如果時(shí)可打印返回true |
ispunct | 如果是標(biāo)點(diǎn)返回true |
isspace | 如果是空格返回true |
isupper | 如果是大寫字母返回true |
isxdigit | 如果時(shí)16進(jìn)制數(shù)返回true |
tolower | 將大寫字母轉(zhuǎn)化為小寫字母 |
toupper | 將小寫字母轉(zhuǎn)化為大寫字母 |
以下代碼就是將hello world轉(zhuǎn)化為HELLO WORLD
# include
# include
using std::string;
using namespace std;
int main() {
string line = "hello world";
for (auto &c : line) {
c = toupper(c);
}
cout<
-
字符串
+關(guān)注
關(guān)注
1文章
579瀏覽量
20519 -
C++
+關(guān)注
關(guān)注
22文章
2108瀏覽量
73657 -
string
+關(guān)注
關(guān)注
0文章
40瀏覽量
4735
發(fā)布評論請先 登錄
相關(guān)推薦
評論