목록프로그래밍/C & C++ (10)
소소한 개발 공부
https://school.programmers.co.kr/learn/courses/30/lessons/120908 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 str1 안에 문자열 str2가 있는지 판별하는 문제이다. 처음에는 한 글자씩 비교해서 str2 끝까지 비교했다면 문자열이 존재하는 걸로 판별하게 작성했다. 문제를 맞히고 다른 사람의 코드를 보니 내가 아직 C++ 함수를 잘 알지 못한다는 느낌을 받았다. 많은 사람들이 string.find 함수와 string::npos 값을 썼는데 둘 다 알지 못하는 거라 정리하고자 한다. 내 코드 : ..

printf를 작성하기 위해 가변인자를 공부하다 보니 제목과 같은 에러를 만나게 되었다. stackoverflow에 같은 이슈가 있었다. int 보다 작은 정수 유형은 int로 사용해야 한다는 뜻으로 보인다. 또 float과 같은 실수의 경우 double 로 작성해야 한다고 한다. 바꾼 코드는 다음과 같다. 바꾼 뒤 출력 결과가 에러 없이 의도한 대로 나온다. 📝참고 : stackoverflow.com/questions/23983471/char-is-promoted-to-int-when-passed-through-in-c
size_t strlcat(char * restrict dst, const char * restrict src, size_t dstsize); - 라이브러리 #include - return dstsize > strlen(dst) : strlen(src) + strlen(dst) dstsize < strlen(dst) : strlen(src) + dstsize dstsize == strlen(dst) : strlen(src) + (dstsize or strlen(src)) * strlen() : 문자열의 글자수를 세는 내장 함수 - 역할 dst에 얼마정도 잘린 src를 뒤에 붙여 문자열 길이가 dstsize인 문자열을 만듦 * 얼마정도 : dstsize - strlen(dst) - 1 * 1을 빼는 이유 ..
size_t strlcpy(char * restrict_dst, const char * restrict_src, size_t dstsize); - 라이브러리 #include - 리턴 size_t strlen(src) - 역할 크기가 제한된 strcpy src 에서 dst로 dstsize -1 만큼 복사 붙여넣기 후 배열 끝에 '\0' 삽입 strncpy() 보다 안전하고 에러가 없게 설계된 함수 if (dstsize != 0) restrict_dst 끝에 '\0'이 포함되어 있음 (dstsize - 1) 만큼 src 를 복사하여 dst에 넣음 (= 0 ~ dstsize - 2 : src 문자열, dstsize - 1 : '\0')