'C' 카테고리의 글 목록
본문 바로가기

728x90
반응형

C

[C] strdup, strjoin, split 구현 stdup의 경우 기존에 C에 있던 함수이기 때문에 많은 분들이 익숙하시겠지만 join과 split의 경우 C언어에 없는 함수이기 때문에 많이 생소하실 겁니다. 다른 언어에서 주로 사용되는 join과 split의 경우 문자열을 이어주고, 특정 문자 기준으로 나누어 주고 해주는 함수이죠 좀 더 자세히 알고 싶으시면 파이썬 join과 split에 대해서 검색해 보시면 됩니다. Strdup#include const char *(const char *s1);함수 내에서 힙메모리에 s1 문자열 크기의 공간을 할당 후 문자열을 복사시키고 반환해주는 함수입니다. #include #include #include const char *my_strdup(const char *s1) { char *ret; int len =.. 더보기
[C언어] 백준 16236 아기 상어 문제 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상어는 엄마.. 더보기
[C] strcmp / strncmp / memcmp 사용법과 구현 및 strncmp와 memcmp의 차이 문자열 알고리즘 문제를 풀다보면 해당 문자열이 이 문자열이 맞는지 판별해주는 함수들이 필요할때가 있죠 목차 strcmp strncmp memcmp 그때 사용하는 함수가 cmp 계열 함수들입니다. 이번 포스팅에서는 cmp 계열 함수들에 대해 알아보고 직접 구현해보도록 합시다. 참고로 이 함수들의 반환값은 1, 0, -1 이 세가지이며 서로 문자를 비교할 때 묵시적 unsigned char로 형변환 합니다! 1은 왼쪽 문자가 더 큰경우 -1은 오른쪽 문자가 더 큰경우 0은 문자열이 같은 경우 strcmp #include int strcmp(const char *s1, const char *s2) s1 문자열과 s2 문자열이 서로 맞는지 확인해 주는 함수입니다. 문자열이 서로 맞다면 0, 다르다면 처음으로 다.. 더보기
[C] strcat / strncat / strlcat 사용법과 구현 문자열을 쓰다 보면 가끔 문자열을 합치고 싶을 때가 있습니다. 이때를 위해 C언어에서는 strcat 함수들을 제공하죠 strcat 부류 함수들은 문자열 뒤에 다른 문자열을 이어 붙여주는 함수입니다. strcat 함수들은 보통 strcat, ncat, lcat으로 분류 됩니다. strcat은 문자열에 문자열을 이어 붙여주는 함수 strncat은 문자열에 문자열을 n번 이어 븉여주는 함수 strlcat은 문자열에 문자열을 n - 1 번 이어 붙여주는 함수 이렇게 설명할 수 있겠네요 이번 포스팅에서는 이 함수들에 대해서 공부해 보는 시간을 가져보겠습니다. strcat #include char*strcat(char *restrict s1, const char *restrict s2) intmain(void) {.. 더보기
[C] strlen / strcpy / strncpy / strlcpy 사용법과 구현 가끔 C언어를 하다보면 문자열 길이가 궁금할 때도 있고 문자열을 복사시키고 싶을 때가 있습니다. 그럴 때 보통 string.h 헤더파일에 있는 함수들을 사용하죠 저희가 이번 포스트에서 볼 함수들은 문자열 길이를 구해주는 strlen 함수와 문자열을 복사시켜주는 strcpy 계열의 함수! strlen 함수 먼저 보시죠 strlen #include size_tstrlen(const char *s) #include int main(void) { char str[13] = "hello world!"; printf("%zu\n", strlen(str)); // 12 } 매개변수로 들어오는 s 문자열의 길이를 size_t 자료형으로 반환해 주는 함수입니다. 예를 들어 "hello world!" 이런식으로 문자가 들.. 더보기
[C] itoa / atoi 구현 지금은 printf가 있어서 현재 값이 정상적으로 입력이 되었는지 %d나 %s로 쉽게 확인할 수 있습니다. 하지만 과거엔 printf가 없었고 write함수로 출력했었죠 write함수는 문자열만 출력이 가능했었는데요 이때 정수를 write로 출력할 수 없었기에 정수를 문자열로 변환시켜 출력하곤 했습니다. 그래서 주로 itoa함수를 사용해 정수를 문자열로 변환시켜 출력을 했었습니다. 그리고 반대로 사용자 입력 argv로 사용자 입력을 받은 문자열을 정수로 변환시켜야 할 때도 있습니다. 이때는 보통 atoi 함수를 사용해서 문자열을 정수로 변환시켜 변수를 초기화 하곤 합니다. 이번 페이지에서는 itoa와 atoi함수를 보다 확실하게 이해하기 위해 구현하는 방법까지 살펴 보겠습니다. 구현하기 앞서 우리는 as.. 더보기

728x90
반응형