728x90
반응형
strncmp 함수
- string.h 헤더파일에 속한 함수.
- 원형은 int strncmp(const char *s1, const char *s2, size_t n)를 따른다.
- null로 끝난 s1, s2문자열들을 비교한다.
- n개 이하의 문자를 비교한다.
- s1 > s2 인 경우 양수, s1 < s2 인 경우 음수, 같은 경우 0을 반환한다.
strncmp 함수의 구현
int ft_strncmp(const char *s1, const char *s2, size_t n)
{
size_t i;
i = 0;
if (n == 0)
return (0);
while (i < n && s1[i] != '\0' && s2[i] != '\0')
{
if (s1[i] != s2[i])
return (((unsigned char *)s1)[i] - ((unsigned char *)s2)[i]);
i++;
}
if (i < n && (s1[i] == '\0' || s2[i] == '\0'))
return (((unsigned char *)s1)[i] - ((unsigned char *)s2)[i]);
return (0);
}
// #include <stdio.h>
// #include <string.h>
// int main(void)
// {
// char *s1 = "applepie";
// char *s2 = "applejam";
// printf("test1 : strncmp : %d",(strncmp("test\200", "test\0", 6)));
// printf("\ntest1 : ft_strncmp : %d", (ft_strncmp("test\200", "test\0", 6)));
// printf("\ntest2 : strncmp : %d", strncmp(s1, s2, 6));
// printf("\ntest2 : ft_strncmp : %d", ft_strncmp(s1, s2, 6));
// printf("\ntest2 : strncmp : %d", strncmp(s1, s2, 0));
// printf("\ntest2 : ft_strncmp : %d", ft_strncmp(s1, s2, 0));
// char *s3 = "\0";
// char *s4 = "\0";
// printf("\ntest2 : strncmp : %d", strncmp(s3, s4, 6));
// printf("\ntest2 : ft_strncmp : %d", ft_strncmp(s3, s4, 6));
// }
728x90
반응형
'C' 카테고리의 다른 글
memcmp 함수의 구현 (2) | 2023.10.17 |
---|---|
memchr 함수의 구현 (mem함수와 str함수의 차이) (0) | 2023.10.16 |
strrchr 함수의 구현 (0) | 2023.10.16 |
strchr 함수의 구현 (2) | 2023.10.16 |
tolower 함수의 구현 (2) | 2023.10.16 |