[- Disclaimer -]
아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
strncmp()
✦ <string.h>
✦ NULL String을 만날 때까지 지정한 문자 수 만큼 str1 <-> str2 간 동일한 문자 위치 상에서 ASCII Code 비교
✦ Parameter1에 전달되는 Argument1
✧ 문자열1 주소
✦ Parameter2에 전달되는 Argument2
✧ 문자열2 주소
✦ Return 값
✧ str1 > str2 시 -1 이하
✧ str1 == str2 시 0
✧ str1 < str2 시 1 이상
int strncmp(const char *str1, const char *str2, size_t count);
Plain Text
복사
strncmp() 기능 구현 - Ex)
#include <string.h>
int self_strncmp(const char *str1, const char *str2, size_t num);
int main(){
char *a = "hello";
char *b = "hell";
int result = self_strncmp(a, b, 8);
printf("%d", result);
return 0;
}
int self_strncmp(const char *str1, const char *str2, size_t num) {
size_t i = 0;
int result = 0;
for(i = 0; i < num-1; i++) {
if ((str1[i] != str2[i]) || (str1[i] == '\0'));
break;
}
result = str1[i] - str2[i];
if(result != 0) {
result >>= 31;
result |= 1;
}
return result;
}
Plain Text
복사
0
--------------------------------
Process exited after 0.3 seconds with return value 0
계속하려면 아무 키나 누르십시오 . . .
Plain Text
복사



