Dia Egg - Shugo Chara
728x90
반응형

분류 전체보기 144

memchr 함수의 구현 (mem함수와 str함수의 차이)

memchr 함수 string.h헤더 파일에 속한 함수. 원형은 void *memchr(const void *s, int c, size_t n)을 따른다. 문자열 s에서 c의 첫번째 발생을 찾는다. 찾으면 그 포인터를 반환하고 찾지못하면 null을 반환. mem함수와 str함수의 차이 str함수는 문자열을 검사하기 위한 함수라 '\0' 로, 혹은 넘겨 받은 길이를 통해 종료시점을 알 수 있다. 하지만 mem함수는 숫자, 구조체, 문자열 등 다양한 구조에서 사용하기 위한 목적으로 만들어진 함수이기 떄문에 매개변수로 받는 size만을 콩해 종료시점을 가진다. memchr 함수의 구현 void*ft_memchr(const void *s, int c, size_t n) { size_ti; void*tmp; i ..

C 2023.10.16

strncmp 함수의 구현

strncmp 함수 string.h 헤더파일에 속한 함수. 원형은 int strncmp(const char *s1, const char *s2, size_t n)를 따른다. null로 끝난 s1, s2문자열들을 비교한다. n개 이하의 문자를 비교한다. s1 > s2 인 경우 양수, s1 < s2 인 경우 음수, 같은 경우 0을 반환한다. strncmp 함수의 구현 intft_strncmp(const char *s1, const char *s2, size_t n) { size_ti; i = 0; if (n == 0) return (0); while (i < n && s1[i] != '\0' && s2[i] != '\0') { if (s1[i] != s2[i]) return (((unsigned char *..

C 2023.10.16

strrchr 함수의 구현

strrchr 함수 string.h 라는 헤더파일에 속한 함수 원형은 char *strrchr(const char *s, int c)을 따른다. strchr함수가 c의 첫번째 발생을 찾는다면 strrchr함수는 c의 마지막 발생을 찾는 함수이다. 찾은 문자에 대한 주소를 반환하거나 문자열에 해당 문자가 없다면 null을 반환한다. strrchr 함수의 구현 char*ft_strrchr(const char *s, int c) { inti; char*tmp; char*result; i = 0; tmp = (char *)s; result = 0; c = c % 256; while (tmp[i] != '\0') { if (tmp[i] == c) result = &tmp[i]; i++; } if (c == '\0..

C 2023.10.16

strchr 함수의 구현

strchr 함수 string.h 헤더파일에 들어있는 함수 원형은 char *strchr(const char *s, int c)을 따른다. 가르키는 문자열 s에서 c가 있는지를 찾는 함수이다. 이는 '\0'문자를 문자열의 일주로 간주한다. 만약 찾는 경우 찾은 문자에 대한 포인터를 반환하고, 문자가 없는 경우 null을 반환 의문점1 원형매개변수에 const가 들어가는데 이를 그대로 활용하여 return 하고자하면 const빼려고 한다는 오류가 발생한다. 그냥 다른 변수에 옮기려고 해도 마찬가지. 이유는 const를 사용한 이상 리턴도 const를 붙여주어야하는데 c에서는 그게 어렵다고 한다. 프로토타입상에서는 s라는 문자열을 건들면 안되니까 const를 써줘야하는데 return이 따라오지 않으니까 생기..

C 2023.10.16

확장아스키코드와 맥과 윈도우 사이의 운영체계 문자표

확장아스키코드를 문자형태로 출력할 수 있을까를 알아보다가 의문이 생긴 부분에 대해 정리하고자 한다. 주제를 시작하기 전에 가장 기본이 되는 유니코드와 각각의 운영체제의 기본 문자체계에 대해 알아보고자 한다. 유니코드 유니코드와 UTF-8의 방식을 혼동하는 경우가 많은데, 이는 개념적으로 분명 다르다. 유니코드는 전 세계에서 사용하는 많은 문자들 각각에 부여한 코드들의 집합이다. 전세계에서 통일한 처리를 할 수 있게 만들어졌으며. U+XXXX의 형식으로 표기된다. 그리고 UTF-N 즉, UTF-8, UTF-16, UTF-32등은 이러한 유니코드 기반의 문자들을 바이트열에 표현하는 방식을 말한다. 즉 표에 있는 코드를 바로 적용하는 아스키와는 다르게 별도의 인코딩 방식이 필요하다는 것을 알 수 있다. 맥의 ..

C 2023.10.16

strlcat 함수의 구현 (+strlcat 함수의 리턴값에 대해)

strlcat 함수 string.h 라는 헤더 파일에 속한 함수. 원형은 size_t strlcat(char * restrict dst, const char * restrict src, size_t dstsize)를 따른다. dst의 뒤에 src를 dstsize 만큼(마지막에 null포함) 붙이는 함수이다. 이때 리턴 값은 null을 제외한 복사 전체 문자열의 수, 즉, 다시 말하지면 src길이 + dest길이. dstsize가 dst보다 작다면 수행하지않는다. 이때 리턴 값은 src의 길이 + dstsize. strlcat 함수의 리턴값에 대해 dstsize가 dst보다 작다면 수행하지않고, 리턴 값은 src의 길이 + dstsize라는 점에 대해 왜 그런지 의문을 품었다. 매뉴얼을 보면, 라는 부분을..

C 2023.10.16

memmove 함수의 구현 (+ memmove함수와 memcpy함수의 차이)

memmove 함수 문자열 src에서 문자열 dst로 len byte만큼 복사하는 함수이다. 원형은 void *memmove(void *dst, const void *src, size_t len)이다 string.h 헤더파일에 속해 있다. 반환값은 dst의 원래주소를 반환한다. memmove와 memcpy의 차이 https://star-ccomputer-go.tistory.com/125 memcpy 함수의 구현 memcpy 함수 string.h 헤더 파일에 들어있는 함수로 memory + copy가 합쳐진 그대로 메모리의 값을 복사하는 기능을 가진 함수이다. 원형은 void *memcpy(void *restrict dst, const void *restrict src, size_t n)을 따른다. sta..

C 2023.10.16

strlcpy 함수의 구현

strlcpy 함수 strning.h 헤더 파일에 들어있는 함수이다 원형은 size_t strlcpy(char * restrict dst, const char * restrict src, size_t dstsize)를 따른다. dest를 len -1 만큼의 길이안에서 src를 복사해주는 함수이다. 즉, size -1 까지 복사를 한 경우와 '\0'을 만났을때의 두가지 종료조건이 있다. 마지막에 \0를 보장해준다. 반환값은 src(복사할 문자열)의 길이이다.(복사 된 길이를 반환하므로 null을 뺀 값) strlcpy 함수의 구현 #include "libft.h" size_tft_strlcpy(char *dest, const char *src, size_t size) { size_ti; size_tsrc_..

C 2023.10.16
728x90
반응형