C언어 54

[C언어] strtok 함수 (문자열 자르기)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열을 특정 문자열 기준으로 자를때 사용한다. 헤더 #include ※ strtok 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 char* strtok(char* str, const char* delim); 파라미터 char* str 자르려는 문자열 버퍼를 입력한다. 처음 문자열을 자른(= strtok 호출) 이후 남은 문자열을 다시 자를 경우 NULL 을 입력한다. const char* delim str 문자열을 잘라낼 기준 문자열을 입력한다. 반환값 (return) delim 을 기준으로 문자열을 잘라낸 경우 : 잘라낸 문자열(포인터)을 반환..

C언어/string.h 2022.09.20
[C언어] memcpy 함수 (메모리 복사)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 특정 주소에 저장되어있는 데이터를 복사할때 사용한다. 헤더 #include ※ memcpy 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 void* memcpy(void* dest, const void* source, size_t size); 파라미터 void* dest 복제된 데이터를 저장할 버퍼를 입력한다. const void* source dest 에 복제할 데이터 버퍼를 입력한다. size_t size 복제할 데이터의 크기를 byte 단위로 입력한다. 반환값 (return) 복제를 완료한 dest 값을 반환한다. 잡학지식 strncpy 와 m..

C언어/string.h 2022.09.19
[C언어] memccpy 함수 (특정 문자까지만 메모리 복사)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 특정 문자까지의 데이터를 복사할때 사용한다. 헤더 #include ※ memccpy 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 void* memccpy(void* dest, const void* src, int val, size_t size); 파라미터 void* dest 복제된 데이터를 저장할 버퍼를 입력한다. const void* src dest 에 복제할 데이터 버퍼를 입력한다. int val 복제 도중 src 에서 발견하면 중단할 문자를 입력한다. 문자 val 을 만나면 val 까지 복사하고 중단한다. 예를 들어 'a' 같은 작은 따옴표를..

C언어/string.h 2022.09.16
[C언어] strcat 함수 (문자열 연결)

사용범위 Windows, Unix 등 모든 OS에서 사용 가능한 표준 API 함수 기능 C언어 표준 함수로 문자열에 문자열을 연결할때 사용한다. 헤더 #include ※ strcat 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 char* strcat(char* dest, const char* source); 파라미터 char* dest 연결(변경)하려는 target string 버퍼를 입력한다. 반드시 NULL 문자로 종료되어야 한다. const char* source dest 에 연결할 string 을 입력한다. 반드시 NULL 문자로 종료되어야 한다. 반환값 (return) dest 에 source 를 연결한 이후 연결된 string 버퍼인 de..

C언어/string.h 2022.09.15
[C언어] strlen 함수 (문자열 길이 확인 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열의 길이를 구하는데 사용한다. 헤더 #include ※ strlen 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 size_t strlen(const char* str); 파라미터 const char* str 길이를 구하려는 문자열을 입력한다. NULL 문자로 종료되는 문자열을 입력해야 한다. 반환값 (return) NULL 문자를 제외한 string 의 길이를 반환한다. 잡학지식 strlen 으로 byte array 의 길이를 구할때는 각별한 주의가 필요하다. NULL 문자로 종료가 안되는 경우도 다반사이기도 한데 byte array 에서 나..

C언어/string.h 2022.09.14
[C언어] strstr 함수 (문자열 검색 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용 가능한 표준 API 함수 기능 C언어 표준 함수로 문자열안에서 특정 문자열을 검색할 때 사용한다. 헤더 #include ※ strstr 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 char* strstr(const char* str, const char* substr); 파라미터 const char* str 검색을 진행할 문자열을 입력한다. NULL 문자 (\0) 가 나올 때까지 str 의 내용을 검색한다. 반드시 유효한 주소값을 입력해야 하고 유효하지 않은 주소 입력 시 signal 이 발생한다. const char* substr str 문자열에서 검색하려는 sub string 을 입력한다...

C언어/string.h 2022.09.14
[C언어] 함수 호출 규약 (Calling Convention, cdecl, stdcall, fastcall)

함수 호출 규약 ? 함수 호출 시 필요한 인자를 어떤 방법으로 전달할지(전달받을지), 함수 종료 시 데이터를 어떤 방식으로 전달할지(전달받을지), 스택을 어떤 방법으로 정리할지 정의해놓은 규칙을 의미한다. C언어를 제법 사용한 개발자 중에서도 함수 호출 규약 (Calling Convention) 이라는 단어를 처음 보는 사람도 있을 것이다. 이를 정확하게 이해하려면 프로세스의 구조와 스택, 어셈블리 언어에 대한 이해가 필요하다. 하지만 위의 이해를 모두 설명하면 끝이 없으니, 심도 깊은 글은 나중에 시간이 된다면 정리해보는 거로 하고 이 글에서는 간략하게 설명해볼까 한다. 스택(Stack) ? 프로세스 실행 시 필요한 여러 데이터들은 메모리에 적재되는데 프로세스의 메모리 영역에는 스택이라는 부분이 있다...

[C언어] 포인터 오프셋 (pointer offset)

C언어를 사용하면 포인터를 사용해야하는 빈도가 굉장히 높다. (사실 매번 쓴다.) 포인터의 활용은 상당히 다양하고 범위가 넓지만 그중에서도 오프셋을 계산하는 주제를 다뤄보려 한다. 포인터의 오프셋 ? 이 글에서의 포인터 오프셋은 포인터를 움직이면서 계산하는 것을 의미한다. 이러한 방법은 네트워크에서의 가변 데이터(패킷)을 다루거나 buffer 에 데이터를 적재할때 흔히 사용한다. 그렇다면 아래 그림에서의 offset 의 값은 무엇일까 ? pointer 가 0 에서 12 로 이동했으니 offset = 12 라고 생각하기 쉽다. 당연히 12 만큼 주소를 이동했지만 실제 코드 구현에서는 12 가 정답이 아닐 수 있다. #include #define MAX_BUF_SIZE 128 int m..

[C언어] strcmp 함수 (문자열 비교 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열을 비교할때 사용한다. 헤더 #include ※ strcmp 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 int strcmp(const char* str1, const char* str2); 파라미터 const char* str1 비교할 첫번째 문자열을 입력한다. NULL 문자로 종료되는 문자열이 들어가는것이 좋다. const char* str2 비교할 두번째 문자열을 입력한다. NULL 문자로 종료되는 문자열이 들어가는것이 좋다. 반환값 (return) -1 : string1 이 string2 보다 작은 경우 ( str1 < str2 ) 0..

C언어/string.h 2022.09.13
[C언어] strcpy 함수 (문자열 복사, string copy)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 string 을 복사하는데 사용한다. strcpy 함수에서 string 의 끝을 판단하는 기준은 NULL 문자이다. (\0) 헤더 #include ※ 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 char* strcpy(char* dest, const char* source); 파라미터 char* dest destination 의 약자로 복사한 문자열을 저장할 대상의 버퍼를 입력한다. 반드시 유효한 주소값을 입력해야하고 유효하지 않은 주소 입력시 signal 이 발생한다. const char* source dest 에 복사할 문자열을 입력한다. (반..

C언어/string.h 2022.09.09
반응형