C语言 模拟实现strcmp strncmp

来源:互联网 发布:知乎 陌生人 编辑:程序博客网 时间:2024/05/21 09:10

strcmp的作用是利用ASCII值比较两个字符串的大小

两个字符串str1,str2,若str1>str2,则返回一个大于0的正数,若str1<str2,则返回一个小于0的负数,若相等,则返回0

#include <stdio.h>#include<assert.h>#include<Windows.h>int my_strcmp(const char *str1, const char *str2){while (*str1 || *str2)//当两个字符串的字符都变为'\0'时,循环停止{if (*str1 > *str2)//比较出大小时,结束该函数return 1;else if (*str1<*str2)return -1;str1++, str2++;//一样大时,对其进行++,比较下一个字符大小}return 0; //如果可以运行到这里,说明循环停止,两个字符相等} int main(){char p[5]= "ac*";char q[5]="ac";printf("%d\n", my_strcmp(p, q));system("pause");return 0;}
下面来介绍strncmp

strncmp的功能是比较两个字符串前n个字符的大小,实现的方法和strncmp基本相同

#include <stdio.h>#include<assert.h>#include<Windows.h>int my_strncmp(const char *str1, const char *str2,int n){while (n--)//在循环时以n来做判断,n为0时停止{if (*str1 > *str2)return 1;else if (*str1<*str2)return -1;str1++, str2++;}return 0;} int main(){char p[5]= "ac*";char q[5]="ac";printf("%d\n", my_strncmp(p, q,3));system("pause");return 0;}


0 0
原创粉丝点击