用於處理字串的一些常用函式

2022-07-25 05:57:08 字數 3825 閱讀 3582

非成員函式

char *strtok(char s, const char *delim);
返回值:字元指標

第一引數:待處理的字串,以後若是繼續對該串處理,第乙個引數設定為null

第二引數:分割符

作用:查詢字串中的分割符並將其變為'\0'然後返回前乙個子串的首位址

用來將一整段英文分割為乙個乙個單詞(標記),並將每個單詞字元陣列的首位址儲存起來

char sent;        //要分解的字串

char *word; //用來儲存單詞首位址的字元指標陣列

char *p = strtok(sent, " "); //首次使用時第一引數為字串

for (int i = 0; p != null; i++)

該函式會對待處理的字串進行改變,即將字串中查詢到的分割符變成'\0';

如果待處理字串的首字元就是分割符,即第乙個標記是空的,這時候會直接再查詢下乙個分割符,當然,這個分割符也會被置0;

第二引數中可以包含多個分隔符,如"() ",就意味著'(',')',' '都是分割符,且地位相等。

非成員函式,被包含於string.h標頭檔案中

char *strcpy(char* str1, const char *str2);
返回值:字串首位址

第一引數:目標位址

第二引數:被複製的字串

作用:把從str2開始的含有'\0'結束符的字串複製到以str1為起始的位置中,並返回str1的位址

用於字串的複製

char str1[maxsize];

char str2 = //注意這裡不使用常量字元指標也可以

strcpy(str1, "hello!");

strcpy(str1, str2);

string類成員函式

string(string str);                //用另乙個string物件去初始化

string(const char c); //用常字串去初始化

string(char c); //用字串去初始化

string(int n, char c); //建立包含n個c的字串

string(int n, const char c); //同上

不能用單個字元或者整型來進行初始化,但是可以用'='來賦值。

string類成員函式

void assign(string str);

void assign(string str, int pos, int size);

第一引數:被複製的字串str

第二引數(可省:從str的什麼位置開始複製

第三引數(可省:複製多少個字元

作用:將待複製的字串複製到目標字串的末尾

string類成員函式

char at(int pos);
返回值:讀取的字元

第一引數:要讀取的字元位置

作用:讀取m目標字串的pos個位置並返回

起的作用和一樣,但是提供溢位檢查。

string類成員函式

int compare(string str);

int compare(int pos1, int len, string str);

int compare(int pos1, int len1, string str, int pos2, int len2);

返回值:整數

第一引數(可省:目標字串的比較起始位置

第二引數(可省:選擇長度

第三引數:比較字串

第四引數(可省:比較字串的比較起始長度

第五引數(可省:選擇長度

作用:將目標字串與比較字串進行比較,前者大則返回正數,等於返回0,前者小返回負數。

一般返回的是-1、0、1;

比較原則:按字母的ascii碼比較優先,長度次之。

string成員函式

string substr(int pos, int len);
返回值:字串

第一引數:查詢起始位置

第二引數:選擇長度

作用:在目標字串中選擇一段並複製到乙個新的字串中返回

返回的是乙個全新的字串,和原字串沒有關聯

string類成員函式

void swap(string str);
第一引數:待交換的字串

作用:將目標字串與str中的內容交換

string類成員函式

int find(char c);            

int find(const char c);

int find(char c);

int find(const char c);

int find(char c, int pos);

····

第一引數:待查詢字元(串)

第二引數:字串中開始查詢的位置

作用:返回目標字串中查詢字元(串)的位置,包括此位置

還有一些系列例如int find_first_of(),int find_last_of(),int find_first_not_of()暫不介紹,作用差不多;

若未查找到,則返回string::npos

string類成員函式

void replace(int pos1, int size1, char c, int pos2. int size2);

void replace(int pos, int size, char c);

第一引數:從什麼位置開始替換

第二引數:選擇長度

第三引數:替換的字串

第四引數(可省:替換字串的選擇位置

第五引數:選擇長度

void srase(int pos);

void erase(int pos, int len);

第一引數:從什麼位置開始刪除

第二引數(可省:刪除多少個,如果該引數沒有就pos之後的全部刪除

作用:刪除目標字串中從pos開始(包括pos)的所有內容

string類成員函式

void insert(int pos, string str);

void insert(int pos1, string str, int pos1, int len);

第一引數:插入位置

第二引數:插入字串

第三引數(可選:插入字串的選擇位置

第四引數(可選:選擇長度

作用:將待插入字串插入目標字串的第pos個字元前面

string類成員函式

const char* c_str();
返回值:常量字元指標

作用:返回乙個c風格的字元指標

string類函式

int length();                //獲取字串的長度

void resize(int len); //更改字串的長度

一些字串的常用函式

char st 100 1.字串長度 strlen st 2.字串比較 strcmp st1,st2 1大於 0等於 1小於 strncmp st1,st2,n 把st1,st2的前n個進行比較。3.附加 strcat st1,st2 strncat st1,st2,n n表示連線上st2的前n個給...

C 一些字串處理函式

1.複製函式 我更願意稱之為 字串覆蓋函式 a.strcpy str1,str2 將字串str2 覆蓋到str1上 b.strncpy str1,str2,n 2.拼接函式 a.strcat str1,str2 將str2接到str1後面 b.strncat str1,str2,n 3.比較函式 a...

matlab處理字串的一些函式

字串和它的ascii表示之間轉換外,matlab還提供了大量的其它的有用的字串轉換 函式。它們包括 表6.1 字 符 串 轉 換 abs字串到ascii轉換 dec2hex 十進位制數到十六進製制字串轉換 fprintf 把 格式化的文字寫到 檔案中或顯示屏上 hex2dec 十六進製制字串轉換成十...