仿写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函数