1. 描述
int strcmp ( const char * str1, const char * str2 );str1>str2=1 ,str1<str2=-1, str1==str2=0.比较对应位置的ACSII码,直接返回,不必拘泥于字符串长度等问题。对指针缺乏安全性检查,空指针程序会崩溃。
2.代码展示
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
int mystrcmp(const char* str1
, const char* str2
)
{
assert(str1
&&str2
);
int len1
= strlen(str1
), len2
= strlen(str2
);
int max
= len1
> len2
? len1
: len2
;
for (int i
= 0; i
<max
; ++i
)
{
if (str1
[i
] > str2
[i
])
return 1;
else if (str1
[i
] < str2
[i
])
return -1;
else
;
}
return 0;
}
void test5()
{
const char* arr1
= "appless";
const char* arr2
= "apple";
const char* arr3
= "pear";
int ret
= 0;
ret
= strcmp(arr1
, arr2
);
printf("%d\n", ret
);
ret
= mystrcmp(arr1
, arr2
);
printf("%d\n", ret
);
}
int main()
{
test5();
system("pause");
return 0;
}
3.结果展示