字串筆記

2021-10-02 09:00:17 字數 1629 閱讀 3355

字串

/*

1.字元的讀寫:

讀入字元使用 getchar()、scanf("%c")

輸出字元使用 putchar()、printf("%c") //對於c語言而言;若用c++還可用cin和cout進行輸入和輸出。

ch=getchar() putchar(ch)

getchar()的速度要快於scanf()。 //getchar()可以把回車吞掉:比如第一行輸入abc字串後要接著在第二行輸入字串def就需要先摁回車鍵,因此若要接著輸入就需要用getchar()把回車吞掉。

2.字串的讀寫:

常規使用的scanf("%s")、printf("%s")實現

但是scanf("%s")是不能讀入空格的

故最常使用gets()輸入和printf()輸出,c++中還可用getline(cin,s)輸入 //有些機器環境不支援gets(),要想輸入空格就必須使用getline()

//getline(cin,s)中的s就不是char型的了,而是string.s(乙個c++的類庫)

3.string類:

是c++特有的字串類

在機試中使用string類對字串處理比使用字串函式直觀而且方便

*///例題1:ascii碼排序

/*problem description

輸入三個字元後,按各字元的ascii碼從小到大的順序輸出這三個字元。

input

輸入資料有多組,每組佔一行,有三個字元組成,之間無空格。

output

對於每組輸入資料,輸出一行,字元中間用乙個空格分開。

sample input

qweasd

zxcsample output

e q w

a d s

c x z

*/#include #include #include using namespace std;

int main()

return 0;

}

字串類庫中的基本運算子:

/*

運算子 示例 注釋

= s1=s2 用s2給s1賦值

+ s1+s2 用s1和s2連線成乙個新串

+= s1+=s2 等價於s1=s1+s2

== s1==s2 判斷是否相等

!= s1!=s2 判斷是否不等

< s1s1>s2 判斷是否大於

>= s1>=s2 判斷是否不小於

s1[i] 訪問串物件s1中下標為i的字元

>> cin>>s1 從鍵盤輸入乙個字串給串物件s1

<< cout<#include using namespace std;

int main()

}for(int i=0;i}

printf("\n");

}return 0;

}

字串(筆記)

2.格式化字串 3.使用正規表示式 4.字元生成器 建立乙個string 物件 string s new string good 連線字串 或其他型別都用 號 string s s1 s2 查詢a在字串str中的索引位置 int size str.indexof a 首次出現 int size st...

字串筆記

kmp 的 fail 指標指向的是當前點最長的能作為原串的字首的字尾在原串字首上的位置。i fail i 就是字首 i 的最短迴圈節,也稱為 border。乙個例題 cf1286e。ac 自動機的本題是一棵 trie 樹。ac 自動機的 fail 指標,指向的是當前點代表的串的最長的 作為某個字串的...

字串轉為大寫 字串 筆記

字串的寫法 字串可以用雙引號包裹,也可以用單引號包裹,外面用雙引號,裡面就只能用單引號,反之就只能用雙引號 let str hello world let str1 hello world 反引號,裡面的字串可以換行 let str2 hello world key value it s a lon...