(공부) C언어

(C언어) 대소문자 상관없이 지정한 길이만큼 문자열 비교(strncasecmp)

율스대디 2020. 9. 21. 21:35

대소문자에 상관없이 지정한 길이만큼의 문자열을 비교하는 함수이다.

함수 형태와 필요한 헤더파일은 아래와 같다.

 

헤더파일 : #include <string.h>

함수형식 : char * strncasecmp( const char *s1, const char *s2, size_t n);

※ s1 : 비교할 대상 문자열

※ s2 : 비교할 문자열

※ 반환 값(결과)

s1 = s2 : 0

s1 > s2 : 양수

s1 < s2 : 음수

 

#include <stdio.h>
#include <string.h>


int main(void)
{
	char  str[] = "pineapple";
	char  str2[] = "PineApple";
	char  str3[] = "  PineApple";
	char  str4[] = "PineAppleII";

	printf("%s with %s = %d\n", str, str, strncasecmp(str, str, 3)); //동일 문자열 비교
	printf("%s with %s = %d\n", str, str2, strncasecmp(str, str2, 3)); //대소문자가 다른 경우 비교
	printf("%s with %s = %d\n", str, str3, strncasecmp(str, str3, 3)); //다른 문자열 비교
	printf("%s with %s = %d\n", str, str4, strncasecmp(str, str4, 3)); //다른 문자열 비교, 9글자는 대소문자 상관없이 동일하다

	return 0;
}

 

※ 결과값(파일이 날라가서 캡쳐를 못했네요...)

pineapple with pineapple = 0

pineapple with PienApple = 0

pineapple with    PineApple = 80

pineapple with PineApplell = -105

 

위와 같이 앞에서 3번째 글자까지 비교해서 대소문자에 상관없이 동일한 문자열은 0을 반환한다.