상세 컨텐츠

본문 제목

[c언어] strcmp 함수 구현하기

c언어

by ~지우~ 2021. 10. 26. 16:29

본문

728x90

오늘은 strcmp함수를 직접 구현해보겠습니다.

 

strcmp함수는 두 문자열을 비교하는 함수로 <string.h> 헤더파일에 선언되어있습니다.

strcmp(문자열1, 문자열2) 형태로 사용할 수 있습니다.

아스키코드를 기준으로 문자열1 > 문자열2 이면 1을 반환하고,

문자열1 < 문자열2 이면 -1을 반환하고,

문자열1 = 문자열2 이면 0을 반환합니다.

 

strcmp(문자열 포인터1, 문자열 포인터2) 형태로 사용할 수 있도록 구현해보겠습니다.

#include <stdio.h>

//strcmp 함수 구현
int string_compare(char* s1, char* s2) {
	while (*s1 != '\0' || *s2 != '\0') {
		if (*s1 > *s2)
			return 1;
		else if (*s1 < *s2)
			return -1;
		else {
			s1++;
			s2++;
		}
	}
	return 0;
}

//string_compare 함수 호출
void main() {
	char* sen1 = "aaa";
	char* sen2 = "aaa";
	char* sen3 = "aab";
	char* sen4 = "aac";

	printf("%d\n", string_compare(sen1, sen2));
	printf("%d\n", string_compare(sen2, sen3));
	printf("%d\n", string_compare(sen4, sen3));
}

 

strcmp(문자배열1, 문자배열2) 형태로 사용할 수 있도록 구현해보겠습니다.

#include <stdio.h>

//strcmp 함수 구현
int string_compare(char s1[], char s2[]) {
	int i = 0;
	while (s1[i] != '\0' || s2[i] != '\0') {
		if (s1[i] > s2[i]) 
			return 1;
		else if (s1[i] < s2[i]) 
			return -1;
		else 
			i++;
	}
	return 0;
}

//string compare 함수 호출
void main() {
	char sen1[256] = "aaa";
	char sen2[256] = "aaa";
	char sen3[256] = "aab";
	char sen4[256] = "aac";

	printf("%d\n", string_compare(sen1, sen2));
	printf("%d\n", string_compare(sen2, sen3));
	printf("%d\n", string_compare(sen4, sen3));
}
728x90

관련글 더보기

댓글 영역