Desc :
Source Code :
#include <stdio.h>
#define SKY "sky"
int My_strcmp(const char* string1, const char* string2);
void main()
{
char string[100];
int ret;
printf("영단어를 입력하고 Enter키를 치세요\n");
printf("sky를 입력하면 프로그램이 종료됩니다\n");
while (1)
{
gets(string);
ret = My_strcmp(string, SKY);
if (ret == 0)
{
printf("%s == %s , ret = %d\n", string, SKY, ret);
break;
}
else if (ret < 0)
{
printf("%s < %s, ret = %d\n", string, SKY, ret);
}
else
{
printf("%s > %s , ret = %d\n", string, SKY, ret);
}
}
}
int My_strcmp(const char* string1, const char* string2)
{
if (*string1 == (int)NULL && *string2 == (int)NULL) // 둘 다 길이가 0으로 같으면--> 0
{
return 0;
}
while (*string1 != (int)NULL)
{
if (*string2 == (int)NULL) // 더이상 비교할 string2가 없다 --> string1이 크다 --> 1
{
return 1;
}
if (*string1 == *string2) // 가리키는 번지의 문자 값이 같은 경우
{
string1++;
string2++;
continue; // 다음 문자와 계속 비교
}
if (*string1 < *string2)
{
return -1;
}
else
{
return 0;
}
}
if (*string2 != (int)NULL) // string1 문자 끝까지 비교한 경우, stirng2가 null이 아니라면 --> 1
{
return -1;
}
return 0; // 그렇지 않으면 문자열은 일치되는 것으로 0 반환
}
Result :
'C' 카테고리의 다른 글
[C] 062 문자열 연결하기 (1) | 2021.01.25 |
---|---|
[C] 061 문자열을 일정 크기만큼 비교하기 (1) | 2021.01.25 |
[C] 059 문자열 비교하기 (1) | 2021.01.25 |
[C] 058 strcpy() 내부흐름 이해하기 (1) | 2021.01.25 |
[C] 057 문자열 복사하기 strcpy (1) | 2021.01.25 |