青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0
函數(shù):int memcmp (const void *a1, const void *a2, size_t size) 
       函數(shù)memcmp用于比較字符串s1與s2的前size個字符。
      如果兩上字符塊相同,memcmp將返回0。

函數(shù):int strcmp (const char *s1, const char *s2) 
        這個函數(shù)用來比較s1和s2字符串,這個函數(shù)將返回一個值,它的符號與第一對不同的字符的比較結(jié)果相關(guān)。
       如果兩個字符串相等的話,strcmp將返回0。
       如果s1是s2的一個子串的話,s1小于s2
此外還有函數(shù) 
    int strncmp (const char *s1, const char *s2, size_t size) 
    此函數(shù)與strcmp極為類似。不同之處是,strncmp函數(shù)是指定比較size個字符。也就是說,如果字符串s1與s2的前size個字符相同,函數(shù)返回值為0。

功能比較:

     二者都可以用于字符串的比較,但是二者是有比較大的差異的,因為strcmp是按照字節(jié)(byte-wise)比較的,并且比較的過程中會檢查是否出現(xiàn)了"\0"結(jié)束符,一旦任意一個字符串指針前進過程中遇到結(jié)束符,將終止比較。而memcmp函數(shù)是用于比較兩個內(nèi)存塊的內(nèi)容是否相等,在用于字符串比較時通常用于測試字符串是否相等,不常進行byte-wise的字符串比較。如果要比較的對象中包含一些由于邊界對齊需求而填入結(jié)構(gòu)對象中的空格、聯(lián)合 (union)結(jié)束的額外空格、字符串所分配的空間未使用完的部分引起的“holes”的話,最好使用memcmp來完成。這些“holes”的內(nèi)容是不確定的,在執(zhí)行byte-wise比較時結(jié)果也是不明確的。

效率差異:
     strcmp比較的字符串,而memcmp比較的是內(nèi)存塊,strcmp需要時刻檢查是否遇到了字符串結(jié)束的 \0 字符,而memcmp則完全不用擔心這個問題,所以memcmp的效率要高于strcmp

使用示例:

給出一個如下的結(jié)構(gòu)定義:
struct foo
  {
    unsigned char tag;
    union
       {
         double f;
        long i;
          char *p;
       } value;
  };
      如果要比較兩個struct foo對象的話,建議最好使用memcmp。
     在給出一個字符串比較的例子,判斷字符串str中前四個中字符是否為 0x80100001,因為0x00對于字符串而言,這是個結(jié)束符,如果使用strncmp的話strncmp(str,"\x80\x10\x00 \x01",4)的話,實際效果是只判斷了是否含有0x8010,也就是說一旦str中前兩個字符為0x8010就返回0,表示相同了,顯然這是不正確的!此時應(yīng)該使用memcmp(str,"\x80\x10\x00\x01",4),這樣一來就達到了目的

 附:strcmp,strncmp,memcmp的Linux的源代碼

/**
 * strcmp - Compare two strings
 * @cs: One string
 * @ct: Another string
 */
int strcmp(const char *cs, const char *ct)
{
        signed char __res;

        while (1) {
                if ((__res = *cs - *ct++) != 0 || !*cs++)
                        break;
        }
        return __res;
}

 /**
 * strncmp - Compare two length-limited strings
 * @cs: One string
 * @ct: Another string
 * @count: The maximum number of bytes to compare
 */
int strncmp(const char *cs, const char *ct, size_t count)
{
        signed char __res = 0;

        while (count) {
                if ((__res = *cs - *ct++) != 0 || !*cs++)                  //比較到結(jié)束符\0,時,已經(jīng)做了__res = *cs - *ct了,所以不等長度時,肯定返回不為0
                        break;
                count--;
        }
        return __res;
}
/**
 * memcmp - Compare two areas of memory
 * @cs: One area of memory
 * @ct: Another area of memory
 * @count: The size of the area.
 */
int memcmp(const void *cs, const void *ct, size_t count)
{
        const unsigned char *su1, *su2;
        int res = 0;
        for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
                if ((res = *su1 - *su2) != 0)
                        break;
        return res;
}

轉(zhuǎn)自:

http://blog.chinaunix.net/u2/67780/showart_2079171.html


posted on 2009-11-24 12:04 chatler 閱讀(1893) 評論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關(guān),覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧洲中文日韩久久av乱码| 男人天堂欧美日韩| 久久综合狠狠综合久久综青草 | 亚洲第一在线综合网站| 欧美伦理一区二区| 欧美大片专区| 好吊妞**欧美| 亚洲午夜视频| 亚洲天堂成人在线视频| 蜜桃久久精品乱码一区二区| 久久精品中文字幕一区二区三区| 欧美日韩一区二区三区在线观看免| 六月丁香综合| 国产视频在线观看一区二区| 一区二区欧美亚洲| 宅男精品导航| 欧美日韩色婷婷| 亚洲三级免费| 亚洲精品一区二区三区福利| 久久综合国产精品| 欧美成人高清| 亚洲韩国日本中文字幕| 久久精品一区蜜桃臀影院 | 欧美在线视频免费播放| 欧美日韩精品一区视频| 亚洲人成人一区二区在线观看| 在线日韩成人| 久久午夜激情| 欧美本精品男人aⅴ天堂| 好吊成人免视频| 久久本道综合色狠狠五月| 久久精品一本| 激情久久中文字幕| 欧美专区日韩专区| 久久中文字幕一区| 亚洲福利视频专区| 毛片基地黄久久久久久天堂| 亚洲高清自拍| 亚洲桃花岛网站| 国产精品成人一区二区三区吃奶 | 欧美激情1区2区3区| 最新亚洲电影| 亚洲少妇一区| 国产精品夜色7777狼人 | 欧美va日韩va| 一区二区动漫| 久久精品麻豆| 亚洲国产成人在线| 欧美激情一区二区三区在线视频| 日韩视频―中文字幕| 亚洲欧美一级二级三级| 国产一区二区三区观看| 免费观看一区| 在线视频一区二区| 久久一二三区| 国产精品99久久久久久人| 国产精品入口麻豆原神| 久久免费高清视频| 亚洲精品一区二区在线观看| 欧美在线网址| 亚洲精品婷婷| 国产手机视频精品| 免费不卡视频| 亚洲欧美变态国产另类| 亚洲成色777777女色窝| 亚洲欧美日产图| 亚洲欧洲一区二区天堂久久| 欧美视频精品在线| 久久久久久久久综合| 妖精视频成人观看www| 久久久爽爽爽美女图片| 在线视频亚洲欧美| 一区二区在线视频| 欧美午夜免费电影| 免费成人av在线| 亚洲欧美日韩第一区| 欧美激情一区二区三区全黄| 欧美一级二区| 在线亚洲欧美专区二区| 一区二区三区在线观看国产| 欧美特黄一级大片| 免费视频最近日韩| 久久av免费一区| 亚洲天堂网在线观看| 欧美激情视频一区二区三区在线播放 | 亚洲高清在线播放| 久久久人成影片一区二区三区观看 | 黄色成人在线观看| 国产精品久久久久秋霞鲁丝 | 久久久99精品免费观看不卡| 99riav久久精品riav| 一区二区亚洲精品国产| 国产日韩成人精品| 国产精品入口| 国产精品自拍三区| 国产精品久久7| 欧美日韩视频专区在线播放 | 99精品国产99久久久久久福利| 欧美电影在线观看完整版| 久久天堂成人| 久久伊人免费视频| 欧美色中文字幕| 欧美大学生性色视频| 伊人久久综合| 久久成人综合网| 亚洲网站在线看| 亚洲国产精品一区在线观看不卡| 翔田千里一区二区| 性一交一乱一区二区洋洋av| 日韩视频不卡中文| 在线 亚洲欧美在线综合一区| 国产精品嫩草影院av蜜臀| 欧美成人在线影院| 亚洲欧美日韩国产另类专区| 夜夜嗨av一区二区三区免费区| 欧美96在线丨欧| 久久深夜福利| 久久久久久电影| 欧美在线免费视屏| 久久婷婷影院| 久久亚洲精品一区二区| 久久视频这里只有精品| 久久爱另类一区二区小说| 亚洲在线视频一区| 日韩网站在线| 亚洲影音先锋| 亚洲欧美日韩久久精品| 亚洲一区二区精品在线观看| 在线中文字幕一区| 亚洲小说欧美另类婷婷| 性欧美video另类hd性玩具| 午夜精品视频在线观看| 亚洲欧美精品suv| 亚洲欧美日韩精品综合在线观看| 亚洲欧美日韩网| 夜夜精品视频一区二区| 欧美一区二区播放| 久久精品国产一区二区三| 久久婷婷影院| 欧美激情精品久久久久久大尺度| 欧美国产精品人人做人人爱| 亚洲夫妻自拍| 一个色综合导航| 亚洲午夜精品视频| 性色av一区二区三区在线观看| 欧美亚洲自偷自偷| 欧美在线观看视频在线| 欧美日本三区| 国产精品视频精品视频| 国模精品娜娜一二三区| 亚洲欧洲日产国产综合网| 亚洲精品国产精品乱码不99按摩 | 亚洲国产成人不卡| 欧美激情一区二区三区四区| 亚洲一二三级电影| 久久福利一区| 欧美精品一区二区精品网| 国产精品美女久久久久久久| 国产精品大片| 亚洲人成免费| 欧美夜福利tv在线| 免费成人av在线看| 99re在线精品| 亚洲免费视频观看| 欧美精品aa| 国产一区日韩欧美| 日韩一区二区精品| 欧美在线日韩在线| 久久久久免费视频| 亚洲视屏在线播放| 久久综合影音| 国产女精品视频网站免费| 91久久精品国产91久久| 99精品国产热久久91蜜凸| 免费成人网www| 亚洲一区二区欧美日韩| 香蕉视频成人在线观看 | 亚洲国产日韩一区| 欧美在线看片| 国产精品久久久久久户外露出 | 国内精品久久久久久| 9人人澡人人爽人人精品| 久久婷婷久久| 亚洲欧美亚洲| 国产精品天天看| 在线视频精品一| 亚洲高清不卡在线| 久久精品亚洲乱码伦伦中文| 欧美久久久久久蜜桃| 日韩天堂av| 欧美第十八页| 久久久久久久综合| 国产日韩欧美三级| 亚洲一级二级在线| 亚洲第一成人在线| 可以看av的网站久久看| 国产一区二区成人| 欧美自拍偷拍| 亚洲欧美美女| 欧美无乱码久久久免费午夜一区|