ft_strncmp

jen133·2022년 1월 15일
0

libft

목록 보기
18/44

💻 ft_strncmp

문자열 s1, s2를 서로 n만큼 비교하는 함수

📃 ft_strncmp 원형

int	ft_strncmp(const char *s1, const char *s2, size_t n)

🔩 parameters

*s1 : s2와 비교할 문자열
*s2 : s1과 비교할 문자열
n : 어느만큼 비교할지 크기

📬 return

int형 반환

  • 문자열 두개를 n만큼 비교하던 중 다른부분이 나오지 않는다면 즉 일치한다면 0을 반환
    문자열 두개를 n만큼 비교하던 중 다른부분이 나온다면 즉 일치하지않는다면 s1과 s2가 처음 일치하지 않는 부분의 차이만큼을 리턴해줌 (s1[i] - s2[i])

🧨 주의사항

만약 인덱스보다 n이 큰 상태이고 s1[i]는 \0이 아니지만 s2의 길이가 n보다 작아 \0일때에도 s1[i]와 s2[i]를 비교한다.

⌨ 코드


#include "libft.h"

int	ft_strncmp(const char *s1, const char *s2, size_t n)
{
	size_t	i;

	i = 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++;
	}
	return (0);
}

profile
늅늅

0개의 댓글