C_C++/C_라이브러리_함수

(C언어) memcmp, memicmp: 두 버퍼의 내용을 (대소문자 구별없이) 비교한다

고니자니 2023. 2. 21. 10:03
반응형
#include <memory.h>

int memcmp(const char *s1, const char *s2, size_t n);

memcmp 함수는 두 개의 버퍼 s1, s2에서 n 바이트 길이만큼 값을 비교합니다.

memicmp 함수는 두 버퍼의 내용을 대소문자 구별 없이 n 바이트 길이만큼 비교합니다.

 

반환값은 다음과 같습니다.

s1 < s2 : 음수를 반환

s1 = s2 : 0을 반환

s1 > s2 : 양수를 반환

 

 

#include <stdio.h>
#include <memory.h>
#include <string.h>
int main()
{
	char buffer1[] = "ram ddr3";
	char buffer2[] = "ram";
	int p;

	p = memcmp(buffer1, buffer2, strlen(buffer2));

	if (p == 0)
		printf("문자열 %s를 찾았습니다.\n", buffer2);
	else
		printf("문자열 %s를 찾지 못했습니다.\n", buffer2);

	return 0;
}

memcmp: 두 값을 비교

 

#include <stdio.h>
#include <memory.h>
int main()
{
	int a[3] = { 1, 2, 3 };
	int b[3] = { 1, 2, 3 };
	int c[3] = { 2, 3, 4 };
	int p;

	p = memcmp(a, b, sizeof(int)*3);

	if (p == 0)
		printf("a, b는 같은 값입니다.\n");
	else
		printf("a, b는 다른 값입니다.\n");
	
	p = memcmp(a, c, sizeof(int) * 3);
	
	if (p == 0)
		printf("a, c 같은 값입니다.\n");
	else
		printf("a, c는 다른 값입니다.\n");
	return 0;
}

memcmp: 정수 배열 비교

 

 

memicmp

비주얼스튜디오에서는 _memicmp 함수를 사용합니다.

#include <stdio.h>
#include <memory.h>
#include <string.h>
int main()
{
	char buffer1[] = "Ram ddr3";
	char buffer2[] = "ram";
	int p;

	p = _memicmp(buffer1, buffer2, strlen(buffer2));

	if (p == 0)
		printf("문자열 %s를 찾았습니다.\n", buffer2);
	else
		printf("문자열 %s를 찾지 못했습니다.\n", buffer2);

	return 0;
}

_memicmp 함수: 대소문자 구별없이 두 버퍼의 내용 비교

 

 

반응형