面试笔试之strcmp函数

来源:互联网 发布:牛贝微信淘宝客源码 编辑:程序博客网 时间:2024/06/09 22:36
int strcmp(const char *str1, const char *str2)
  1. 参数带const
  2. 返回值的问题,str1>str2,返回正数,不是1;同理返回0,返回负数
  3. 检查指针的有效性
  4. 如何使代码最简洁正确
  5. 返回值的简洁写法!!!
  6. 检查str1与str2是否相等。。。
代码:
#include <iostream>#include <cassert>using namespace std;int mystrcmp(const char *str1, const char *str2){assert(str1 != NULL && str2 != NULL);if(str1 == str2){return 0;}// 这里的*str1和*str2都必须有,网上有的只检查str1,是错误的!!!// while(*str1 && *str1++ == *str2++); //errorwhile(*str1 && *str2 && (*str1++ == *str2++));return *str1 - *str2;}int main(){char str1[20] = "abc";char str2[20] = "abcde";char str3[20] = "abcd";char str4[20] = "abcd";cout << mystrcmp(str1, str2) << endl;cout << mystrcmp(str2, str3) << endl;cout << mystrcmp(str3, str4) << endl;return 0;}


输出:
-1001010