728x90
문제. wcscmp함수 만들기
wcscmp는 두 문자열을 입력받고, 이를 사전순으로 비교해서 같으면 0,
첫번째 문자열이 빠르면 -1, 두번째 문자열이 빠르면 1를 반환하는 함수이다.
이 함수는 어떻게 구현하면 좋을까?
필요한 프로세스
1.입력받는 두 문자열의 길이를 구한다.
2.첫번째 문자부터 비교해 나가며 크기를 비교한다.
3.같으면 다음문자, 다르면 비교 후 -1 or 1 출력!
4.끝까지 같다면, 문자열의 길이 를 비교해서 -1 or 1 출력!
5.문자열의 길이까지 같다면, 0출력!
int cmpcmp(const wchar_t* left, const wchar_t* right) {
//수정할 필요가 없는 함수이다! 상수화 시켜주기
int leftlen = GetLength(left);
int rightlen = GetLength(right);
//각 두 문자열의 길이를 구한다.
int Loop = leftlen < rightlen ? leftlen : rightlen;
//몇번 반복할지 정하기
for (int i = 0; i < Loop; i++)
{
if (left[i] < right[i])
return -1;
else if (left[i]>right[i])
return 1;
//첫번쨰 문자부터 비교해 나간다.
}
if (leftlen < rightlen)
return -1;
else
return 1;
//만일 위에서 걸리지 않았다면, Loop번째 까지는 같다는 소리다.
//문자열 길이 비교 후 그래도 같다면 0을 리턴한다.
return 0;
}
728x90
'프로그래밍 언어 > C++ [기본]' 카테고리의 다른 글
[C++기본] 26.동적 할당 (0) | 2021.09.23 |
---|---|
[C++기본] 25.구조체 포인터 (0) | 2021.09.23 |
[C++기본] 23.문자열-4 (0) | 2021.09.23 |
[C++기본] 22.문자열-3 (0) | 2021.09.23 |
[C++기본] 21.문자열-2 (0) | 2021.09.23 |