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

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則完全不用擔(dān)心這個問題,所以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 閱讀(1886) 評論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(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嫩草影院| 亚洲丝袜av一区| 国产精品久久久999| 欧美国产精品v| 亚洲午夜一区二区三区| 欧美一区二区三区四区夜夜大片| 在线看一区二区| 国产精品久久久一区麻豆最新章节 | 麻豆av一区二区三区| 久久综合给合| 亚洲欧美在线一区| 亚洲深夜av| 裸体女人亚洲精品一区| 日韩小视频在线观看| 国内外成人免费激情在线视频| 欧美精品在线免费| 麻豆免费精品视频| 欧美一区国产二区| 久久免费视频在线| 老司机成人网| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品在线观看免费| 欧美一级视频精品观看| 欧美日韩高清在线一区| 国产欧美va欧美不卡在线| 亚洲国产你懂的| 久久国产一二区| 亚洲美女视频在线免费观看| 久久www成人_看片免费不卡| 欧美精品久久天天躁 | 久久天天综合| 一区二区三区视频观看| 欧美一区二区在线免费观看 | 亚洲——在线| 久久久久国产免费免费| 欧美ed2k| 久久久天天操| 亚洲欧洲三级| 日韩天天综合| 奶水喷射视频一区| 亚洲第一福利在线观看| 久久久久国产一区二区| 亚洲欧美日韩精品综合在线观看| 欧美女同视频| 日韩亚洲精品视频| 亚洲电影成人| 欧美日韩国产系列| 99视频+国产日韩欧美| 91久久精品美女| 欧美伦理91i| 亚洲综合大片69999| 亚洲在线一区二区| 亚洲大黄网站| 亚洲日本欧美天堂| 国产精品丝袜久久久久久app| 欧美在线999| 久久婷婷蜜乳一本欲蜜臀| 亚洲国产成人tv| 99国产精品久久久久老师| 国产精品乱码一区二区三区| 久久久久久9999| 欧美www视频在线观看| 亚洲图片在区色| 午夜精品影院在线观看| 欧美一区二区啪啪| 亚洲精品男同| 久久精品亚洲精品| 亚洲欧美一区二区视频| 欧美午夜片在线观看| 99这里只有精品| 亚洲精品乱码| 一区二区三区高清视频在线观看| 欧美日韩高清一区| 欧美伊人久久大香线蕉综合69| 一区二区日韩免费看| 国产精品一二一区| 免费亚洲电影在线| 亚洲欧美日韩爽爽影院| 亚洲高清成人| 久久精品色图| 一区二区三区你懂的| 国产精品毛片在线| 噜噜噜在线观看免费视频日韩| 亚洲图片欧美一区| 亚洲无限av看| 国产农村妇女精品| 久久久蜜桃精品| 亚洲美女在线视频| 国产日韩欧美在线| 国产在线观看91精品一区| 男女激情视频一区| 亚洲每日更新| 国产精品高潮呻吟久久av无限| 亚洲新中文字幕| 亚洲电影免费观看高清完整版在线观看 | 久久免费视频在线| 亚洲国产一区二区精品专区| 亚洲日本乱码在线观看| 国产精品v一区二区三区| 亚洲伦理在线免费看| 国产一区二区三区电影在线观看| 另类尿喷潮videofree| 亚洲综合久久久久| 亚洲高清精品中出| 久久久久久一区| 亚洲欧美影音先锋| 亚洲免费观看高清完整版在线观看| 欧美日韩直播| 国产日韩在线一区二区三区| 久久久国产精品一区二区中文| 亚洲视频电影在线| 亚洲欧美日韩另类| 一区二区免费在线视频| 久久高清一区| 午夜视频在线观看一区| 欧美视频在线免费看| 午夜一区二区三区不卡视频| 欧美国产日韩二区| 午夜视频精品| 国产欧美在线播放| 夜夜嗨av一区二区三区四季av| 亚洲欧美清纯在线制服| 国产精品露脸自拍| 欧美在线免费观看亚洲| 奶水喷射视频一区| 久久久久九九视频| 免费一级欧美在线大片| 久久亚洲一区二区三区四区| 久久米奇亚洲| 亚洲国产精品久久久久秋霞不卡| 欧美中文字幕在线| 欧美激情亚洲另类| av成人免费观看| 欧美一进一出视频| 欧美在线影院| 欧美成人69| 国产精品每日更新| 亚洲麻豆av| 欧美在线亚洲在线| 欧美国产日韩一区二区在线观看| 欧美精品在线观看播放| 韩国av一区二区三区在线观看 | 久久久夜色精品亚洲| 欧美大学生性色视频| 亚洲一区免费看| 欧美不卡高清| 狠狠色丁香久久婷婷综合_中| 一区二区三区精品| 免费在线欧美视频| 亚洲欧美制服另类日韩| 欧美三级视频在线播放| 在线成人av网站| 久久夜色精品国产噜噜av| 在线视频你懂得一区二区三区| 麻豆精品在线视频| 亚洲国产合集| 久久综合伊人77777| 欧美资源在线观看| 国产视频综合在线| 久久婷婷激情| 久久婷婷麻豆| 日韩视频国产视频| 一区二区久久久久| 国产伦精品一区二区三区免费迷| 亚洲一区在线观看视频| 亚洲欧美在线一区二区| 国产一区二区三区日韩| 免费日韩av电影| 欧美日韩高清在线观看| 亚洲欧美色婷婷| 久久久久久久性| 一区二区三区产品免费精品久久75 | 国产麻豆一精品一av一免费| 久久精品99国产精品| 性色一区二区三区| 久久综合网hezyo| 夜久久久久久| 欧美影院精品一区| 91久久国产综合久久| 亚洲综合久久久久| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲午夜国产成人av电影男同| 99精品视频免费全部在线| 影音先锋成人资源站| 亚洲一卡久久| 一道本一区二区| 蜜乳av另类精品一区二区| 欧美一区成人| 国产精品久久久久久久久久直播| 欧美在线看片| 欧美日韩一区综合| 最新中文字幕亚洲| 亚洲福利专区| 麻豆久久精品| 欧美国产1区2区| 亚洲国产一区二区在线| 久久全球大尺度高清视频| 久久国产天堂福利天堂| 国产欧美日韩视频|