/***
*strcmp.c - routine to compare two strings (for equal, less, or greater)
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* Compares two string, determining their lexical order.
*
*******************************************************************************/
#include <cruntime.h>
#include <string.h>
#ifdef _MSC_VER
#pragma function(strcmp)
#endif /* _MSC_VER */
/***
*strcmp - compare two strings, returning less than, equal to, or greater than
*
*Purpose:
* STRCMP compares two strings and returns an integer
* to indicate whether the first is less than the second, the two are
* equal, or whether the first is greater than the second.
*
* Comparison is done byte by byte on an UNSIGNED basis, which is to
* say that Null (0) is less than any other character (1-255).
*
*Entry:
* const char * src - string for left-hand side of comparison
* const char * dst - string for right-hand side of comparison
*
*Exit:
* returns -1 if src < dst
* returns 0 if src == dst
* returns +1 if src > dst
*
*Exceptions:
*
*******************************************************************************/
int __cdecl strcmp (
const char * src,
const char * dst
)
{
int ret = 0 ;
while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}
'프로그래밍(Programming) > c++, 11, 14 , 17, 20' 카테고리의 다른 글
함수호출 규약, 64 bit 에서 함수가 더 빠른 이유 (0) | 2012.11.01 |
---|---|
입,출력 스트림 - IO stream (0) | 2012.11.01 |
c++ 무한대 표기 (0) | 2012.11.01 |
대입연산자 오버로딩은 클래스 멤버로만 정의 가능하고 전역으로는 할 수 없다 (0) | 2012.11.01 |
멤버변수 구현파일에서 초기화 (0) | 2012.11.01 |