字符串常用函數講解(strcpy,strcmp,strstr,strncat,strlen,strspn)

1,strcmp

 原型:int strcmp(const char *s1,const char *s2)

返回值:s1 == s2,返回0;s1 < s2,返回負數;s1 > s2,返回正數

規則:從左到右比較ASCII碼,直到‘/0’結束。

 

2,strcpy

原型:char *strcpy(char* dest, const char *src)

返回值:返回值指向dest的指針

規則:把從src地址開始且含有NULL結束符的字符串複製到以dest開始的地址空間

注意:a,‘\0’也會被複制過去,src會抹除dest多餘的字節空間。如下圖

b,同理,如果src比dest空間大,dest地址末端會強制加入src剩餘內容,但是dest長度不變,如下圖

c,字符串指針作爲dest,最好malloc申請內存空間,否則可能段錯誤。

 

3,strstr

原型:char *strstr(char *str1, const char *str2);

返回值:char*類型的str2出現在str1的地址

規則:strstr(str1,str2) 函數用於判斷字符串str2是否是str1的子串。如果是,則該函數返回str2在str1中首次出現的地址;否則,返回NULL

4,strncat

原型:char *strncat(char *dest, const char *str,  size_t n)

返回值;dest指針起始地址

規則:strncat()會把str起始的n個字節複製添加到dest結尾,並且抹去dest末尾的‘\0’,但是dest要有足夠的空間容納

5,strlen

原型:size_t strlen(const char *s)

返回值:s的字符數

規則:計算s的字符數,不包括結束標誌,sizeof()是操作符,返回內存字節大小,strlen()是函數,返回字符數字

6,strspn

原型:size_t strspn(const char *str, const char *accept)

返回值:str包含accept的字符數

規則:計算str字符串中有多少字符是accept的

7,