真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

第五章:C++之字符串-創(chuàng)新互聯(lián)

系列文章目錄

創(chuàng)新互聯(lián)公司為客戶提供專業(yè)的做網(wǎng)站、網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、手機(jī)網(wǎng)站開(kāi)發(fā)等網(wǎng)站方面業(yè)務(wù)。文章目錄
  • 系列文章目錄
  • 前言
  • 一、字符與整數(shù)的聯(lián)系——ASCII碼
  • 二、字符數(shù)組
  • 三、標(biāo)準(zhǔn)庫(kù)類型 string
  • 總結(jié)


前言

字符串可以用字符數(shù)組表示也可以用string類型的變量表示。


一、字符與整數(shù)的聯(lián)系——ASCII碼

每個(gè)常用字符都對(duì)應(yīng)一個(gè)-128 ~ 127的數(shù)字,二者之間可以相互轉(zhuǎn)化。注意:目前負(fù)數(shù)沒(méi)有與之對(duì)應(yīng)的字符。

常用ASCII值:‘A’- 'Z’是65 ~ 90,‘a(chǎn)’ - 'z’是97 - 122,0 - 9是 48 - 57。

字符可以參與運(yùn)算,運(yùn)算時(shí)會(huì)將其當(dāng)做整數(shù)。

二、字符數(shù)組

字符串就是字符數(shù)組加上結(jié)束符’\0’。

可以使用字符串來(lái)初始化字符數(shù)組,但此時(shí)要注意,每個(gè)字符串結(jié)尾會(huì)暗含一個(gè)’\0’字符,因此字符數(shù)組的長(zhǎng)度至少要比字符串的長(zhǎng)度多 1 !

#includeusing namespace std;

int main()
{char a1[] = {'C', '+', '+'};            // 列表初始化,沒(méi)有空字符
    char a2[] = {'C', '+', '+', '\0'};      // 列表初始化,含有顯示的空字符
    char a3[] = "C++";                      // 自動(dòng)添加表示字符串結(jié)尾的空字符
    char a4[6] = "Daniel";                  // 錯(cuò)誤:沒(méi)有空間可以存放空字符

    return 0;
}

字符數(shù)組的輸入輸出

#includeusing namespace std;

int main()
{char str[100];

    cin >>str;             // 輸入字符串時(shí),遇到空格或者回車(chē)就會(huì)停止
    cout<< str<< endl;    // 輸出字符串時(shí),遇到空格或者回車(chē)不會(huì)停止,遇到'\0'時(shí)停止
    printf("%s\n", str);

    return 0;
}

字符數(shù)組的常用操作
(1)strlen(str),求字符串的長(zhǎng)度
(2)strcmp(a, b),比較兩個(gè)字符串的大小,a< b返回-1,a == b返回0,a >b返回1。這里的比較方式是字典序!
(3)strcpy(a, b),將字符串b復(fù)制給從a開(kāi)始的字符數(shù)組。

三、標(biāo)準(zhǔn)庫(kù)類型 string

可變長(zhǎng)的字符序列,比字符數(shù)組更加好用。需要引入頭文件:

#include

定義和初始化

#include#includeusing namespace std;

int main()
{string s1;              // 默認(rèn)初始化,s1是一個(gè)空字符串
    string s2 = s1;         // s2是s1的副本,注意s2只是與s1的值相同,并不指向同一段地址
    string s3 = "hiya";     // s3是該字符串字面值的副本
    string s4(10, 'c');     // s4的內(nèi)容是 "cccccccccc"

    return 0;
}

string上的操作

#include#includeusing namespace std;

int main()
{string s1, s2;

    cin >>s1 >>s2;
    cout<< s1<< s2<< endl;

    return 0;
}

使用getline讀取一整行

#include#includeusing namespace std;

int main()
{string s;

    getline(cin, s);

    cout<< s<< endl;

    return 0;
}

string的empty和size操作

#include#includeusing namespace std;

int main()
{string s1, s2 = "abc";

    cout<< s1.empty()<< endl;//0
    cout<< s2.empty()<< endl;//1

    cout<< s2.size()<< endl;

    return 0;
}

string的比較

支持 >,<, >=,<=, ==, !=等所有比較操作,按字典序進(jìn)行比較。

為string對(duì)象賦值

string s1(10, 'c'), s2;     // s1的內(nèi)容是 cccccccccc;s2是一個(gè)空字符串
s1 = s2;                    // 賦值:用s2的副本替換s1的副本
                            // 此時(shí)s1和s2都是空字符串

兩個(gè)string對(duì)象相加

#include#includeusing namespace std;

int main()
{string s1 = "hello,  ", s2 = "world\n";
	string s3 = s1 + s2;                    // s3的內(nèi)容是 hello, world\n
	s1 += s2;                               // s1 = s1 + s2
}

字面值和string對(duì)象相加

做加法運(yùn)算時(shí),字面值和字符都會(huì)被轉(zhuǎn)化成string對(duì)象,因此直接相加就是將這些字面值串聯(lián)起來(lái):

string s1 = "hello", s2 = "world";      // 在s1和s2中都沒(méi)有標(biāo)點(diǎn)符號(hào)
string s3 = s1 + ", " + s2 + '\n';

當(dāng)把string對(duì)象和字符字面值及字符串字面值混在一條語(yǔ)句中使用時(shí),必須確保每個(gè)加法運(yùn)算符的兩側(cè)的運(yùn)算對(duì)象至少有一個(gè)是string:

string s4 = s1 + ", ";  // 正確:把一個(gè)string對(duì)象和有一個(gè)字面值相加
string s5 = "hello" + ", "; // 錯(cuò)誤:兩個(gè)運(yùn)算對(duì)象都不是string

string s6 = s1 + ", " + "world";  // 正確,每個(gè)加法運(yùn)算都有一個(gè)運(yùn)算符是string
string s7 = "hello" + ", " + s2;  // 錯(cuò)誤:不能把字面值直接相加,運(yùn)算是從左到右進(jìn)行的

處理string對(duì)象中的字符

可以將string對(duì)象當(dāng)成字符數(shù)組來(lái)處理:

#include#includeusing namespace std;

int main()
{string s = "hello world";

    for (int i = 0; i< s.size(); i ++ )
        cout<< s[i]<< endl;

    return 0;
}

或者使用基于范圍的for語(yǔ)句:

#include#includeusing namespace std;

int main()
{string s = "hello world";

    for (char c: s) cout<< c<< endl;

    for (char& c: s) c = 'a';

    cout<< s<< endl;

    return 0;
}

總結(jié)

字符串是計(jì)算機(jī)與人類溝通的重要手段?!Z學(xué)燦

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:第五章:C++之字符串-創(chuàng)新互聯(lián)
文章URL:http://weahome.cn/article/ijjsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部