仿写strncmp函数
生活随笔
收集整理的這篇文章主要介紹了
仿写strncmp函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019-03-11 ?by 崔斐然
?int strncmp ( const char * str1, const char * str2, size_t n );
?【參數】str1, str2 為需要比較的兩個字符串,n為要比較的字符的數目。
?字符串大小的比較是以ASCII 碼表上的順序來決定,此順序亦為字符的值。strncmp()首先將s1 第一個字符值減去s2 第一個字符值,若差值為0 則再繼續比較下個字符,直到字符結束標志'\0',若差值不為0,則將差值返回。例如字符串"Ac"和"ba"比較則會返回字符"A"(65)和'b'(98)的差值(-33)。注意:要比較的字符包括字符串結束標志'\0',而且一旦遇到'\0'就結束比較,無論n是多少,不再繼續比較后邊的字符。
?【返回值】若str1與str2的前n個字符相同,則返回0;若s1大于s2,則返回大于0的值;若s1 小于s2,則返回小于0的值。
?
?
/*int strncmp ( const char * str1, const char * str2, size_t n );【參數】str1, str2 為需要比較的兩個字符串,n為要比較的字符的數目。字符串大小的比較是以ASCII 碼表上的順序來決定,此順序亦為字符的值。strncmp()首先將s1 第一個字符值減去s2 第一個字符值,若差值為0 則再繼續比較下個字符,直到字符結束標志'\0',若差值不為0,則將差值返回。例如字符串"Ac"和"ba"比較則會返回字符"A"(65)和'b'(98)的差值(-33)。注意:要比較的字符包括字符串結束標志'\0',而且一旦遇到'\0'就結束比較,無論n是多少,不再繼續比較后邊的字符。【返回值】若str1與str2的前n個字符相同,則返回0;若s1大于s2,則返回大于0的值;若s1 小于s2,則返回小于0的值。*//* print相關: ①%d格式:用來輸出十進制整數。有以下幾種用法:%d:按整型數據的實際長度輸出。 ⑤%c格式:輸出一個字符。 ⑥%s格式:用來輸出一個串。%s:例如:printf("%s", "CHINA")輸出"CHINA"字符串(不包括雙引號)指針中的相關參數理解:printf("%c\n",s1[0]);//從指針位置向后移動0位,帶[]得到的就是地基上的內容printf("%c\n",*s1);//打印s1的全部內容,*一般表示全部,因為定義的是char類型,打印單個字符這里打印出的第一個字符是空格。如果一開始定義的是int或者string 類型則會打印整個串。printf("%d\n",&s1[0]);//&打印內存中的真實地址,真實地址是int類型整數 */#include <stdio.h>int my_strncmp( const char * s1, const char * s2, int n){int i=0;while(i<n && s1[1]!='\0' && s2[i]!='\0' ){ //如果循環檢測位數,當小于規定位數n,或者兩者不為\0時候,執行如下步驟if (s1[i]-s2[i]==0) {//檢查這一位是不是相等,若差值為0 i加1,意思是繼續檢查下一位i++;}else{return s1[i]-s2[i];//返回兩個}}return 0;}int main() {char *s1 = "1234a567";char *s2 = "1235d";int strncmp = my_strncmp(s1,s2,5);printf("%d", strncmp);return 0; }?
總結
以上是生活随笔為你收集整理的仿写strncmp函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于机器学习的捡球机器人设计与实现(探索
- 下一篇: 仿写atoi函数