C/C++--strcmp函式實現
阿新 • • 發佈:2019-02-13
#include "stdafx.h" #include <iostream> #include <assert.h> int myStrCmp(const char *pStr1,const char *pStr2) { while(NULL != pStr1 && NULL != pStr2) { while(*pStr1++ == *pStr2++) { if('\0' == *pStr1 && '\0' == *pStr2) {return 0;} //相等,返回0 } return((*(unsigned char*)pStr1 < *(unsigned char*)pStr2) ? -1 : 1); //pSrc1大於pSrc2返回1 } return -2; //指標為空,返回-2 } int _tmain(int argc, _TCHAR* argv[]) { char *pA = NULL; char *pB = NULL; std::cout << myStrCmp(NULL, "") << std::endl; std::cout << myStrCmp("", NULL) << std::endl; std::cout << myStrCmp(NULL, NULL) << std::endl; std::cout << myStrCmp("12", "34") << std::endl; std::cout << myStrCmp("34", "12") << std::endl; std::cout << myStrCmp("34", "14") << std::endl; std::cout << myStrCmp("12", "12") << std::endl; getchar(); return 0; }