C字串——庫函數系列(strlen、strcat、strcpy、strcmp)

來源:互聯網
上載者:User

標籤:blog   io   ar   sp   strong   div   on   log   bs   

 

一定義:

字串:字串是由零個或者多個字元組成的有限串列;

子串:字串中任意個連續的字元組成的子序列,並規定空串是任意串的子串,字串本身也是子串之一;“abcdefg”,”abc“就是其子串,但是“ade”不屬於子串範圍。

子序列:不要求字元連續,但是其順序與其在主串中相一致;上例中,“abc”與“ade”都屬於子序列範圍;

二:C風格字串包括兩種:

1)字串常量---以雙引號括起來的字元序列,編譯器自動在其末尾添加一個Null 字元

2)末尾添加了’0‘的字元數組;

char ch1[]={ ‘c‘, ‘+‘, ‘+‘};//不是C風格字串char ch2[]={ ‘c‘, ‘+‘, ‘+‘, ‘\0‘};//C風格字串char ch3[] = "C++";//C風格字串sizeof(ch3) = 4;strlen(ch3) = 3;

 三:標準庫提供的字串處理函數:

strlen(s) : 返回S的長度,不包括字串結束符NULL;strcmp(s1,s2) :比較兩個字串是否相同,若s1==s2,返回0,若s1>s2則返回正數,若s1<s2則返回負數;strcat(s1,s2):將字串s2串連到s1上,返回 s1;strcpy(s1,s2):將s2,複製到s1,返回 s1.

 1)自訂函數實現strlen的功能:

//附帶評分標準int strlen(const char* src)//const 2‘{assert(str != NULL); // 3‘int count =0;while(*str++ != ‘\0‘) //2‘count++;return count;//3‘}

 2)自訂函數實現strcmp的功能:

int strcmp(const char *s1, const char *s2){assert(s1 != NULL && s2 != NULL);int ret;//s1 ="abcd"; s2 = "abcde";則ret = 0-‘e‘ < 0while( !(ret = *(unsigned char*)s1 - *(unsigned char*)s2) && *s1){s1 ++;s2 ++;}if(ret < 0) return -1;else if( ret >0) return 1;return 0;}

3)自訂函數實現strcat的功能:

int strcmp(const char *strD, const char *strS){assert(strD != NULL && strS != NULL);char* address = strD;while(*strD != ‘\0‘) //走到末尾strD ++;while((*strD++ = *strS++) != NULL);//catreturn address; //attention}

 3)自訂函數實現strcpy的功能:

int strcmp(const char *strD, const char *strS){assert(strD != NULL && strS != NULL);char* address = strD;
     //attention此處,若*strS為’\0‘,則其先賦值給strD,故最後不需要再添加‘\0‘while((*strD++ = *strS++) != NULL);//copyreturn address; //attention}

 

C字串——庫函數系列(strlen、strcat、strcpy、strcmp)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.