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;
}
#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;
}
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;
}
반응형