Search

strncmp()

[- 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
복사