(string.h에 선언되어 있음.)
- memcmp(포인터1, 포인터2, 크기);
- int memcmp(void* ptr1, void* ptr2 size_t _Size);
- 결과에 따른 정수 값을 리턴
두 개의 메모리 블록을 비교한다.
ptr1이 가리키는 처음 _Size 바이트의 데이터와 ptr2 가 가리키는 처음 _Size 바이트의 데이터를 비교하여 이들이 같다면 0 을 리턴하고 다르다면 0 이 아닌 값을 리턴한다. 이 때 리턴되는 값은 아래를 참고.
인자 |
ptr1 메모리 블럭을 가리키는 포인터이다. |
ptr2 메모리 블럭을 가리키는 포인터이다. |
_Size 비교할 바이트의 수를 나타낸다. |
리턴값 |
두 개의 메모리 블록의 관계에 따라 아래와 같이 정수 값을 리턴한다.
|
예시1
#include <stdio.h>
#include <string.h>
int main() {
char str1[256];
char str2[256];
int n;
size_t len1, len2;
printf("Enter a sentence: ");
scanf("%s", str1);
printf("Enter another sentence: ");
scanf("%s", str2);
len1 = strlen(str1);
len2 = strlen(str2);
n = memcmp(str1, str2, len1 > len2 ? len1 : len2);
if (n > 0) {
printf("'%s' is greater than '%s'.\n", str1, str2);
} else if (n < 0) {
printf("'%s' is less than '%s'.\n", str1, str2);
} else {
printf("'%s' is the same as '%s'.\n", str1, str2);
}
return 0;
}
결과1
Enter a sentence: abcde
Enter another sentence: adecd
'abcde' is less than 'adecd'
참고자료
'Dev > C\C++' 카테고리의 다른 글
[C++] 함수와 const (0) | 2019.12.30 |
---|---|
[C/C++] free (0) | 2019.11.07 |
[C/C++] malloc (0) | 2019.11.07 |
[C/C++] memset (0) | 2019.11.01 |
[C/C++] memcpy (0) | 2019.11.01 |