본문 바로가기
카테고리 없음

[C] StcCmp 함수 만들기(문자열이 같은지 비교 함수)

by 김샤랑 2022. 1. 10.

[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;
	}

}

 

 

 

댓글