实现strcmp,int StrCmp(const char *str1, constchar *str2)
若str1==str2,则返回零;
若str1<str2,则返回负数;
若str1>str2,则返回正数。
#include <cstdio>
#include <deque>
#include <algorithm>
#include <iterator>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <assert.h>
#define null 0
using namespace std;
//int StrCmp(const char *str1, const char *str2)
//{
// while(*str1!='\0'&&*str2!='/0')
//
//}
int strcmp(const char *str1, const char *str2)
{
/*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++,
return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/
while (*str1 == *str2)
{
if (*str1 == '\0')
return 0;
str1++;
str2++;
}
return *str1 - *str2;
}
int main()
{
char *a = "333";
char*b = "55555";
cout <<strcmp(a,b);
system("pause");
return 0;
}