0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++入門之string

jf_78858299 ? 來源: QStack ? 作者: 月下西樓 ? 2023-03-17 13:58 ? 次閱讀

前言

前一篇文章我們已經(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<
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    20519
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2108

    瀏覽量

    73657
  • string
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    4735
收藏 人收藏

    評論

    相關(guān)推薦

    C++字符串string

    stringC++編程語言中的字符串。在C++中字符串處理可以使用c語言字符串形式char *,也可以使用string類格式。
    的頭像 發(fā)表于 07-10 00:26 ?1292次閱讀
    <b class='flag-5'>C++</b>字符串<b class='flag-5'>string</b>

    C++STL算法(二)

    C++STL算法(二)
    的頭像 發(fā)表于 07-18 14:49 ?1054次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>STL算法(二)

    c++STL算法(三)

    c++STL算法(三)
    的頭像 發(fā)表于 07-18 15:00 ?1296次閱讀
    <b class='flag-5'>c++</b><b class='flag-5'>之</b>STL算法(三)

    C++文件操作

    C++文件操作
    的頭像 發(fā)表于 07-21 10:52 ?1116次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>文件操作

    C++入門基礎(chǔ)教程大全

    C++入門基礎(chǔ)教程大全 C++是一種面向?qū)ο蟮木幊陶Z言,但如果系統(tǒng)沒有采用面向?qū)ο蟮募夹g(shù),C++只能作為面向過程的語言來使用.
    發(fā)表于 05-29 10:25 ?0次下載

    C++ 入門自學(xué)教程

    C++ 入門自學(xué)教程從入門知識(shí)開始講起,比較有利于初學(xué)者入門掌握,比較好懂,能夠?qū)?b class='flag-5'>C++有一個(gè)全面認(rèn)識(shí)
    發(fā)表于 11-17 10:36 ?0次下載

    Visual C++編程入門視頻

    Visual C++編程入門視頻!資料來源網(wǎng)絡(luò),如有侵權(quán),敬請見諒
    發(fā)表于 11-20 15:10 ?6次下載

    c++入門經(jīng)典習(xí)題集

    讓大家全方位傻瓜式學(xué)習(xí)大話設(shè)計(jì)模式(3.45MB)c++入門經(jīng)典習(xí)題集+多年積累的類庫。
    發(fā)表于 07-13 15:11 ?2次下載

    C++入門教程之C++程序設(shè)計(jì)的課件資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++入門教程之C++程序設(shè)計(jì)的課件資料免費(fèi)下載主要內(nèi)容包括了:1. 認(rèn)識(shí)C++2. C++的現(xiàn)狀和發(fā)展3.
    發(fā)表于 12-07 08:00 ?33次下載
    <b class='flag-5'>C++</b><b class='flag-5'>入門</b>教程之<b class='flag-5'>C++</b>程序設(shè)計(jì)的課件資料免費(fèi)下載

    如何使用C語言實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)容的string

    眾所周知,C++ 中的string使用比較方便,關(guān)于C++ 中的string源碼實(shí)現(xiàn)可以看我的這篇文章:源碼分析C++
    的頭像 發(fā)表于 10-25 10:59 ?2018次閱讀

    C++函數(shù)模板的概念及意義

    一、函數(shù)模板的引出:1、c++中有幾種交換變量的方法:(1)定義宏代碼塊(2)定義函數(shù)代碼版本一:#include <iostream>#include <string>using namespace
    的頭像 發(fā)表于 12-24 15:58 ?870次閱讀

    C++設(shè)計(jì)新思維-泛型編程與設(shè)計(jì)應(yīng)用

    C++設(shè)計(jì)新思維-泛型編程與設(shè)計(jì)應(yīng)用
    發(fā)表于 11-16 15:59 ?3次下載

    C++學(xué)習(xí)筆記c++的基本認(rèn)識(shí)

    自這篇文章我們即將開始C++的奇幻之旅,其內(nèi)容主要是讀C++ Primer的總結(jié)和筆記,有興趣可以找原版書看看,對于學(xué)習(xí)C++還是有很大幫助的。這篇文章將從一個(gè)經(jīng)典的程序開始介紹C++
    的頭像 發(fā)表于 03-17 13:57 ?739次閱讀

    C++入門通用算法

    C++ 是一種強(qiáng)大的編程語言,它提供了許多通用算法,可以用于各種容器類型。這些算法是通過迭代器來操作容器中的元素,因此它們是通用的,可以用于不同類型的容器。在本篇博客中,我們將詳細(xì)介紹 C++ 的通用算法。
    的頭像 發(fā)表于 05-17 09:40 ?672次閱讀

    C++之父新作帶你勾勒現(xiàn)代C++地圖

    為了幫助大家解決這些痛點(diǎn)問題,讓大家領(lǐng)略現(xiàn)代C++美,掌握其中的精髓,更好地使用C++,C++之父Bjarne Stroustrup坐不住了,他親自操刀寫就了這本《
    的頭像 發(fā)表于 10-30 16:35 ?858次閱讀
    <b class='flag-5'>C++</b>之父新作帶你勾勒現(xiàn)代<b class='flag-5'>C++</b>地圖