매크로 (Macros) ¶
매크로 명 | 설명 |
NULL | 널 포인터 상수 값 |
EXIT_FAILURE | 실패한 종료 (0이 아닌 값을 가짐) |
EXIT_SUCCESS | 성공한 종료 (0인 값을 가짐) |
RAND_MAX | 랜덤 함수에 의해서 리턴되는 최대 값 (적어도 32, 767) |
MB_CUR_MAX | 현재 사용 중인 로케일에서 멀티바이트 문자의 최대 길이 |
변수 (Variables) ¶
변수 명 | 설명 |
typedef size_t | sizeof 키워드의 unsigned 정수형 결과 |
typedef wchar_t | 확장 문자 상수 크기의 정수 타입 |
struct div_t | div() 함수에 의해 리턴되는 구조체형 |
struct ldiv_t | idiv() 함수에 의해 리턴되는 구조체형 |
함수 (Functions) - String Functions ¶
함수 명 | 설명 |
double atof(const char *str); | 문자열을 실수(double precision)로 변환 |
int atoi(const char *str); | 문자열을 정수(integer)로 변환 |
double strtod(const char *str, char **endptr); | 문자열을 실수(double precision)로 변환 |
long int strtol(const char *str, char **endptr, int base); | 문자열을 정수(long integer)로 변환 |
unsigned long int strtoul(const char *str, char **endptr, int base); | 문자열을 정수(unsigned long)로 변환 |
함수 (Functions) - Memory Functions ¶
함수 명 | 설명 |
void *calloc(size_t nitems, size_t size); | 요청된 메모리 할당 (모든 원소를 0으로 초기화 한다) |
void free(void *ptr); | calloc(), malloc(), realloc()에 의해 할당된 메모리 해제 |
void *malloc(size_t size); | 요청된 메모리 할당 (원소를 초기화 하지 않는다) |
void *realloc(void *ptr, size_t size); | calloc(), malloc()에 의해 할당된 메모리 크기를 재조정한다 |
== 함수 (Functions) - Environment Functions ==
함수 명 | 설명 |
void abort(void); | 비정상적인 프로그램 종료를 발생시킨다 |
int atexit(void (*func)(void)); | 프로그램이 정상적으로 종료될 때 전달인자로 넘겨진 함수포인터를 이용해서 특정 함수 실행 |
void exit(int status); | 정상적인 프로그램 종료를 발생시킨다 |
char *getenv(const char *name); | 환경 변수를 얻는다 |
int system(const char *string); | 전달인자로 받은 명령 실행 |
함수 (Functions) - Searching and Sorting Functions ¶
함수 명 | 설명 |
void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); | 이진검색 수행 |
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)); | 퀵 소트 수행 |
함수 (Functions) - Math Functions ¶
함수 명 | 설명 |
int abs(int x); | 정수형 절대값 리턴 |
div_t div(int numer, int denom); | 전달인자의 numer를 denom으로 나눈 값과 나머지를 구조체형식으로 리턴 |
long int labs(long int x); | long형 정수의 절대값을 리턴 |
ldiv_t ldiv(long int numer, long int denom); | div()와 동일하고 변수 타입만 long int |
int rand(void); | 0부터 RAND_MAX까지의 범위사이의 난수 리턴 |
void srand(unsigned int seed); | rand()에 의해 사용되는 난수 생성기에 인자 공급 |
함수 (Functions) - Multibyte Functions ¶
함수 명 | 설명 |
int mblen(const char *str, size_t n); | 다중 바이트 문자의 길이 리턴 |
size_t mbstowcs(schar_t *pwcs, const char *str, size_t n); | 다중 바이트 문자 스트링을 wide 문자 스트링으로 변환 |
int mbtowc(whcar_t *pwc, const char *str, size_t n); | 다중 바이트 문자를 wide 문자로 변환 |
size_t wcstombs(char *str, const wchar_t *pwcs, size_t n); | wide 문자 스트링을 다중 바이트 스트링으로 변환 |
int wctomb(char *str, wchar_t wchar); | wide 문자를 다중 바이트 문자로 변환 |
strtod(), strtol(), strtoul() 예제코드 ¶
~cpp #include <stdlib.h> #include <stdio.h> void main( void ) { char *string, *stopstring; double x; long l; int base; unsigned long ul; string = "3.1415926This stopped it"; x = strtod( string, &stopstring ); printf( "string = %s\n", string ); printf(" strtod = %f\n", x ); printf(" Stopped scan at: %s\n\n", stopstring ); string = "-10110134932This stopped it"; l = strtol( string, &stopstring, 10 ); printf( "string = %s", string ); printf(" strtol = %ld", l ); printf(" Stopped scan at: %s", stopstring ); string = "10110134932"; printf( "string = %s\n", string ); /* Convert string using base 2, 4, and 8: */ for( base = 2; base <= 8; base *= 2 ) { /* Convert the string: */ ul = strtoul( string, &stopstring, base ); printf( " strtol = %ld (base %d)\n", ul, base ); printf( " Stopped scan at: %s\n", stopstring ); } }
strtod(), strtol(), strtoul() 실행 결과 ¶
string = 3.1415926This stopped it
string = -10110134932This stopped it strtol = -2147483647 Stopped scan at: This stopped itstring = 10110134932
strtod = 3.141593
Stopped scan at: This stopped it
Stopped scan at: This stopped it
strtol = 45 (base 2)
Stopped scan at: 34932
strtol = 4423 (base 4)
Stopped scan at: 4932
strtol = 2134108 (base 8)
Stopped scan at: 932
Stopped scan at: 34932
strtol = 4423 (base 4)
Stopped scan at: 4932
strtol = 2134108 (base 8)
Stopped scan at: 932
malloc() 예제코드 ¶
~cpp #include <stdlib.h> /* For _MAX_PATH definition */ #include <stdio.h> #include <malloc.h> int main( void ) { char *string; /* Allocate space for a path name */ string = malloc( _MAX_PATH ); // In a C++ file, explicitly cast malloc's return. For example, // string = (char *)malloc( _MAX_PATH ); if( string == NULL ) printf( "Insufficient memory available\n" ); else { printf( "Memory space allocated for path name\n" ); free( string ); printf( "Memory freed\n" ); } }
qsort(), bsearch() 예제코드 ¶
~cpp #include<stdlib.h> #include<stdio.h> #include<string.h> int main(void) { int i; char string_array[10][50]={"John", "Jane", "Mary", "Rogery", "Dave", "Paul", "Beavis", "Astro", "George", "Elroy"}; /* 정렬 전 */ for (i = 0; i < 10; i++) printf("%s, ", string_array[i]); printf("\n"); /* Sort the list */ qsort(string_array, 10, 50, strcmp); /* 정렬 후 */ for (i = 0; i < 10; i++) printf("%s, ", string_array[i]); printf("\n"); /* Search for the item "Elroy" and print it */ printf("%s\n",bsearch("Elroy", string_array, 10, 50, strcmp)); return 0; }
qsort(), bsearch() 실행 결과 ¶
John, Jane, Mary, Rogery, Dave, Paul, Beavis, Astro, George, Elroy,
Astro, Beavis, Dave, Elroy, George, Jane, John, Mary, Paul, Rogery,
Elroy
----
OurMajorLangIsCAndCPlusPlus
Astro, Beavis, Dave, Elroy, George, Jane, John, Mary, Paul, Rogery,
Elroy
OurMajorLangIsCAndCPlusPlus