C語言:模擬實現strncmp
模擬實現字符串比較函數strncmp(),與strcmp()函數可以查看博客http://10740184.blog.51cto.com/10730184/1714512有區別。
【返回值】若str1與str2的前n個字符相同,則返回0;若arr1大於arr2,則返回大於0的值;若arr1 若小於arr2,則返回小於0的值。
【參數】str1, str2 為需要比較的兩個字符串,n為要比較的字符的數目(這是函數strcmp()所做不到的)。而此處我設置的len是arr1長度。,
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
int my_strcmp(const char *dest, const char *src, int len)
{
assert(dest);
assert(src);
while (len--)
{
if (*dest == *src)
{
dest++;
src++;
}
}
if (len == 0)
return 0;
else
return (*dest - '\0') - (*src - '\0');
}
int main()
{
char arr1[] = "abcdeff";
char arr2[] = "abcd";
int len = sizeof(arr1) / sizeof(arr1[0]);
int ret = my_strcmp(arr1, arr2, len);
printf("%d", ret);
system("pause");
return 0;
}