개요
- 길이 n만큼 문자열 s1과 문자열 s2
- 두 값의 차이를 뺀다.
구현
- unsigned char 부호를 이용해서 두 문자의 절댓값을 비교.
- (unsigned char) 1 - (unsigned char) 5를 할 때, -4가 나올 수 있는가?
- 가능하다. unsigned char가 가질 수 있는 값이 양수라는 것이지, 계산을 못한다는 것은 아니다.
코드
c
int ft_strncmp(const char *s1, const char *s2, unsigned int n)
{
unsigned int i;
i = 0;
while (i < n && (s1[i] != '\0' || s2[i] != '\0'))
{
if ((unsigned char) s1[i] != (unsigned char) s2[i])
return ((unsigned char)s1[i] - (unsigned char)s2[i]);
i++;
}
return (0);
}