Dia Egg - Shugo Chara

C

strncmp 함수의 구현

별ㅇI 2023. 10. 16. 21:46
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