日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别

發布時間:2025/3/19 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????模擬實現內存比較函數memcmp:


????該函數與strcmp有相似之處,都可用于字符串比較是否相同,若相同,則返回0值。若前者大于后者,則返回大于0的整型值,否則返回小于0的整型值。


????區別在于:


????strcmp只能比較字符串,memcmp是內存比較函數,原則上是比較內存的,但其實真正實現時并不是所有都可以比較,例如float,但我們至少可以比較字符串以及int型。

????而對于strcmp,strncmp的比較:str1, str2 為需要比較的兩個字符串,n為要比較的字符的數目,而函數strcmp()做不到,strcmp()可以比較全部字符串(因為它找字符串結束標志‘\0’)。


????關于strcmp的實現,可以查看我的博客http://10740184.blog.51cto.com/10730184/1714512


????關于strncmp的實現,可以查看我的博客http://10740184.blog.51cto.com/10730184/1715207

????代碼如下:


????

#define?_CRT_SECURE_NO_WARNINGS?1 #include<stdio.h> #include<stdlib.h> #include<assert.h>int?my_memcmp(const?void?*p1,?const?void?*p2,?size_t?count) {assert(p1);assert(p2);char?*dest?=?(char?*)p1;char?*src?=?(char?*)p2;while?(count?&&?*dest?==?*src){count--;dest++;src++;}if?(count?==?0){return?0;}????else{return?*dest??-?*src?-?‘\0’;}}int?main() {/*int?arr1[]?=?{?1,?3,?20,?5?};????????????//比較整型int?arr2[]?=?{?1,?3,?10,?7?};*/char?arr1[]?=?"hello";????????????????????//比較字符串char?arr2[]?=?"hello?world";int?len?=?sizeof(arr1)?/?sizeof(arr1[0]);int?ret?=?my_memcmp(arr1,?arr2,?12);printf("%d",?ret);system("pause");return?0; }


轉載于:https://blog.51cto.com/10740184/1715695

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。