深度剖析 string —— strcmp strncmp

发布时间:2026/8/13 16:44:22
深度剖析 string —— strcmp  strncmp 系列文章目录深度剖析strcat strncat深度剖析strchr strstr深度剖析strcmp strncmp深度剖析strcpy strncpy深度剖析strlen strtok深度剖析memcpy memmove深度剖析memset memcmp文章目录系列文章目录前言一、strcmp1.调用结构2.使用详解3.源码剖析二、strncmp1.调用结构2.使用详解3.源码剖析前言库函数string是我们经常使用也是非常重要的代码我将会对常用的函数的用法和实现原理进行深度剖析一、strcmp1.调用结构intstrcmp(constchar*str1,constchar*str2);2.使用详解strcmp把 str1 所指向的字符串和 str2 所指向的字符串进行比较原理详解:比较ASCII码值第一个字符串 第二个字符串则返回 大于0 的数字第一个字符串 第二个字符串则返回 0第一个字符串 第二个字符串则返回 小于0 的数字3.源码剖析intStrcmp(charconst*s1,charconst*s2){//比较:把 str1 所指向的字符串和 str2 所指向的字符串进行比较。assert(s1s2);//防止传入空指针while(*s1*s2*s1!0*s2!0){//比较字符串s1;s2;}return*s1-*s2;//返回比较结果}二、strncmp1.调用结构intstrncmp(constchar*str1,constchar*str2,size_tn);2.使用详解strncmp把 str1 和 str2 进行比较最多比较前 n 个字节原理详解:比较到出现另个字符不一样或者一个字符串结束或者num个字符全部比较完第一个字符串 第二个字符串则返回 大于0 的数字第一个字符串 第二个字符串则返回 0第一个字符串 第二个字符串则返回 小于0 的数字3.源码剖析intStrncmp(charconst*s1,charconst*s2,intlen){//比较:把 str1 和 str2 进行比较最多比较前 n 个字节assert(s1s2);//防止传入空指针while(len--*s1*s2*s1!\0*s2!\0){//比较 n 个字节的字符串s1;s2;}return*s1-*s2;//返回比较结果}