[C] StcCmp 함수 만들기(문자열이 같은지 비교 함수)
같은 기능을 구현하더라도 사람마다 코드를 짜는 법이 천차만별이다. 그 예시가 될 수 있을 것 같다.
문자열이 같은지 비교하는 함수를 만들었다.
두 문자열을 받고 먼저 받은 문자열과 두 번째 받은 문자열이 같을 경우는 0, 다를 경우에는 알파벳 abcd순으로 더 앞에 있는 알파벳을 빠르게 봐서 더 짧은 경우를 더 우선순위 앞으로 둔다.
첫 번째 문자열이 우선순위가 더 빠를 경우는 -1,
두 문자열이 같을 경우에는 0,
두 번째 문자열이 우선순위가 더 빠를 경우는 1로 본다.
- 1번 StrCmp 코드
int StrCmp(const wchar_t _left, const wchar_t* _right)
{
int leftLen = wcslen(_left);
int rightLen = wcslen(_right);
int iLoop =0;
int iReturn = 0;
if(leftLen < rightLen)
{
iLoop = legtLen;
iReturn = -1;
}
else if(leftLen > rightLen)
{
iLoop = rightLen;
iReturn =1;
}
for(int i=0; i < iLoop; ++i)
{
if(_left[i] < _right[i])
{
return -1;
}
else if(_left[i] > _right[i])
{
return 1;
}
}
return iReturn;
}
- 2번 StrCmp 코드
int StrCmp(const wchar_t* _pStr1, const wchar_t* _pStr2)
{
int len1 = wcslen(_pStr1);
int len2 = wcslen(_pStr2);
if (len1 < len2)
return -1;
if (len1 > len2)
return 1;
if (len1 == len2)
{
for (int i = 0; i < len1; i++)
{
if (_pStr1[i] != _pStr2[i])
{
if (_pStr1[i] > _pStr2[i])
return 1;
else return -1;
}
}
return 0;
}
}
댓글