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 :

+ Recent posts