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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++入門之string

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

前言

前一篇文章我們已經(jīng)了解了C++中的基本類型,C++還提供了很多抽象數(shù)據(jù)類型,例如字符串string,string包含多個字符,以及可變長度的vector,vector可以包含多個同一類型的對象。

使用using聲明

在之前的程序中可以看到我們通過命名空間來解決可能的命名沖突,代碼如下

# include
int main() {
    std::cout<<"please enter two numbers:"<

這樣看來每次調用cin和cout時都要帶上命名空間和范圍標識符會顯得比較繁瑣,就像在Java中每次調用方法都要帶上包名和類名一樣,Java使用import關鍵字來引入依賴,在C++中則是使用using關鍵字來解決這個問題,例如上述例子可以通過using std::cin來表示引入std命名空間內的cin。

# include
using std::cin;
using std::cout;
using std::endl;
int main() {
    cout<<"please enter two numbers:"<

如果確定程序中沒有命名沖突,可以直接使用using std,不需要分別一一引入,就像Java中直接import一個類。

# include
using namespace std;
int main() {
    cout<<"please enter two numbers:"<

?需要注意的是頭文件不能使用using,因為頭文件的內容是需要拷貝到引入頭文件的文件當中去,如果多個頭文件使用using引入相同的命名空間,程序無法知道使用哪一個,會引發(fā)命名沖突。

?

string

字符串是一系列字符的組合,如果需要使用字符串需要引入頭文件string,其也在std命名空間。

string的定義與初始化

string的定義和初始化方法有以下幾種

# include
# include
using std::string;
using std::cout;
using std::endl;
int main() {
    string s1; //默認初始化,s1是一個空字符串
    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操作

之前我們曾提到一個對象的類型決定了其存儲的方式以及操作,string支持的操作如下

操作 解釋
os << s 將字符串寫到輸出流
is >> s 從輸入流中讀取
getline(is, s) 從輸入流中讀取一行
s.empty() 判斷是否為空,如果為空返回true,否則返回false
s.size() 返回字符串的長度
s[n] 返回第n個字符
s1 + s2 將s1和s2拼接
s1 = s2 將s2的字符串拷貝給s1
s1 == s2 判斷s1和s2的字符串是否相等
s1 != s2 判斷不相等
< <= > >= 比較是大小寫敏感的

有時候在接受輸入時我我們并不想忽略輸入的空格,這時候可以使用getline來獲取輸入的一整行。

# include
# include
using std::string;
using namespace std;
int main() {
   string line;
   while (getline(cin, line))
   {
    cout<

字符串是由一系列的字符組成,而字符中有一些分類,例如4是一個數(shù)字字符,a是一個小寫字母,C++中提供了一些方法可以很方便地判斷字符的類型和做一些操作。

函數(shù) 解釋
isalnum 如果是字母或者數(shù)字返回true
isalpha 如果是字母返回true
iscntrl 如果是control返回true
isdigit 如果是數(shù)字返回true
isgraph 如果不是空格但是可打印返回true
islower 如果時小寫字母返回true
isprint 如果時可打印返回true
ispunct 如果是標點返回true
isspace 如果是空格返回true
isupper 如果是大寫字母返回true
isxdigit 如果時16進制數(shù)返回true
tolower 將大寫字母轉化為小寫字母
toupper 將小寫字母轉化為大寫字母

以下代碼就是將hello world轉化為HELLO WORLD

# include
# include
using std::string;
using namespace std;
int main() {
   string line = "hello world";
   for (auto &c : line) {
    c = toupper(c);
   }
   cout<
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    566

    瀏覽量

    20384
  • C++
    C++
    +關注

    關注

    21

    文章

    2085

    瀏覽量

    73302
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4696
收藏 人收藏

    評論

    相關推薦

    C++字符串string

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

    C++STL算法(二)

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

    c++STL算法(三)

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

    C++文件操作

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

    C++入門基礎教程大全

    C++入門基礎教程大全 C++是一種面向對象的編程語言,但如果系統(tǒng)沒有采用面向對象的技術,C++只能作為面向過程的語言來使用.
    發(fā)表于 05-29 10:25 ?0次下載

    C++ 入門自學教程

    C++ 入門自學教程從入門知識開始講起,比較有利于初學者入門掌握,比較好懂,能夠對C++有一個全面認識
    發(fā)表于 11-17 10:36 ?0次下載

    Visual C++編程入門視頻

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

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

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

    C++入門教程之C++程序設計的課件資料免費下載

    本文檔的主要內容詳細介紹的是C++入門教程之C++程序設計的課件資料免費下載主要內容包括了:1. 認識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>程序設計的課件資料免費下載

    如何使用C語言實現(xiàn)動態(tài)擴容的string

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

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

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

    C++設計新思維-泛型編程與設計應用

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

    C++學習筆記c++的基本認識

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

    C++入門通用算法

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

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

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