C C 學習筆記29 字串處理函式

2021-06-23 09:23:08 字數 1806 閱讀 3206

常見的字串處理函式有:

size_t strlen(cs); //求出cs的長度
gets(str);

puts(str);

char *strcpy(s,ct);//把ct複製到s中去

char *strncpy(s,ct,n);//把ct中的n個字元複製到s中去

char *strcat(s,ct);//把ct複製到s字串之後

char *strncat(s,n,ct);//複製ct中的n個字元到s中去

int strcmp(cs,ct);//比較cs與ct的大小,分別返回正值、0、負值

int strncmp(cs,n,ct);//比較cs和ct的大小,最多比較n個字元

char *strchr(cs,c);//在cs中查詢第乙個c出現的位置,並用指向這個位置的指標表示,如果沒有則返回null;

char *strrchr(cs,c);//在cs中查詢最後乙個c出現的位置

size_t strspn(cs,ct);//在cs中查詢全部由ct裡字元組成的序列,並返回其長度

size_t strcspn(cs,ct);//在cs中查詢全部由非ct裡字元組成的序列,並返回其長度

char *strpbrk(cs,ct);//在cs裡查詢ct裡的字元,返回第乙個滿足條件的字元出現的位置,沒有時返回null

char *strstr(cs,ct);//在cs中查尋串ct(查詢子串),返回ct作為cs的子串的第乙個出現的位置,ct未出現在cs裡時返回null

char *strerror(n);//返回與錯誤編號n相關的錯誤資訊串(指向該錯誤資訊串的指標)

char *strtok(s,ct); //在s中查尋由ct中的字元作為分隔符而形成的單詞

strstr(string,search);//搜尋乙個字串在另乙個字串中第一次出現

關於字元陣列的問題

在c語言中字串是作為字元陣列來處理的。

e.g.1:已知strcpy函式的原型是:char *strcpy(char *strdest,const char *strsrc);

(1)不呼叫c++/c的庫函式,請編寫strcpy。

實現:

char *strcpy(char *strdest,const char *strsrc);

關於上述的assert函式,

assert巨集的原型定義在中,其作用是如果它的條件返回錯誤,則終止程式執行。涉及到的一些標準庫常用函式,在之後會詳細總結。

(2)strcpy能把strsrc的內容複製到strdest,為什麼還要char *型別的返回值?

為了實現一些鏈式表示式,比如說我用strcpy實現了複製,但是我還想得到複製過後的字串長度是多少,可以進行如下操作:

int length = strlen(strcpy(strdest,"hello world"));

e.g.2:下面的程式會出現何種問題?

#include #include int main(void)

以上的輸出結果是123456789,56789;

原因在於當初分配的記憶體位址是連續記憶體的問題。

python筆記1 字串處理函式

對於re.findall 第三個引數預設為空 返回值為乙個列表 import re data re.findall r text,re.s 標記乙個子表示式的開始和結束位置,表示除換行符以外的乙個字元,前面內容可以出現0次或多次,前面的內容 子表達 可以出現0次或1次 如果不使用re.s引數,則只在...

05 2 字串處理函式

字串分割函式 strsplit strsplit x,split,extended true,fixed false,perl false strsplit 123abcderabggg ab 按照ab分割字串 字串連線 計算字串的字元數 nachr 字串擷取 substr x,start,stop...

2018 01 08 字串處理函式

str.capitalize 返回乙個字串,首字母大寫 str.replace 替代字元 str.split 將字串切分,返回乙個列表,列表的元素是字元,預設用空格切分 把字串切成列表 str.join 引數是個可迭代的物件,返回的是乙個字串。string 模組 string.capitalize ...