반응형

C_C++/C_라이브러리_함수 104

(C언어) perror: 시스템 오류 메시지를 출력한다

#include void perror(const char *s); perror 함수는 오류 메지지를 출력합니다. 먼저 인수로 설정된 s를 출력하고, 그 다음에 콜론(:)과 전역변수 errno 값에 해당하는 메시지를 출력합니다. 보통인 인수 s에는 파일명을 지정합니다. #define _CRT_SECURE_NO_WARNINGS // Visual Studio #include int main() { FILE* fp; fp = fopen("perror.txt", "r"); if (!fp) { perror("perror.txt"); return 1; } fclose(fp); return 0; }

(C언어) memset: 버퍼를 지정된 문자로 초기화한다

#include void *memset(void *s, int c, size_t n); memset 함수는 버퍼s를 n 바이트 크기만큼 c로 지정된 값으로 설정합니다. #include #include int main() { char dst[20]; memset(dst, '*', 19); dst[19] = 0; printf("%s\n", dst); return 0; } 다음 예제는 dst를 0(NULL)으로 초기화하고, src로 지정된 문자열을 복사하는 예제입니다. #include #include #include int main() { char src[] = "Hi, C Language."; char dst[20]; memset(dst, 0, 20); memcpy(dst, src, strlen(src));..

(C언어) memmove: 버퍼의 내용을 이동한다

#include void *memmove(void *dst, const void *src, size_t n); memmove 함수는 src로 지정된 버퍼의 내용을 dst로 지정된 버퍼로 n 바이트 크기만큼 복사합니다. src와 dst가 겹쳐있는 경우에도 정확히 복제됩니다. 참고: memcpy #include #include #include int main() { char src[] = "Hi, C Language."; char dst[20]; memset(dst, 0, 20); // dst부터 20바이트를 0(NULL)으로 할당합니다. memmove(dst, src, strlen(src)); printf("%s\n", dst); printf("%s\n", src); return 0; }

(C언어) memcmp, memicmp: 두 버퍼의 내용을 (대소문자 구별없이) 비교한다

#include int memcmp(const char *s1, const char *s2, size_t n); memcmp 함수는 두 개의 버퍼 s1, s2에서 n 바이트 길이만큼 값을 비교합니다. memicmp 함수는 두 버퍼의 내용을 대소문자 구별 없이 n 바이트 길이만큼 비교합니다. 반환값은 다음과 같습니다. s1 s2 : 양수를 반환 #include #include #include int main() { char buffer1[] = "ram ddr3"; char buffer2[] = "ram"; int p; p = memcmp(buffer1, buffer2, strlen(buffer2)); if (p == 0) printf("문자열..

(C언어) memchr: 버퍼에서 지정한 문자를 찾는다

#include void *memchr(const void *s, int c, size_t n); memchr 함수는 문자열 s에서 지정한 문자 c를 찾기 위해 n 바이트를 검색합니다. 지정한 문자를 찾았으면 첫 번째로 일치하는 문자 c의 포인터를 반환하고, 찾지 못했으면 NULL을 반환합니다. #include #include #include int main() { char s[] = "C programming."; char* ptr; ptr = (char*)memchr(s, 'm', strlen(s)); if (ptr) printf("%c 찾은 위치: %d\n", 'm', ptr - s); else printf("%c:찾지 못했습니다.\n"); return 0; }

(C언어) max,min: 두 수 중에서 큰 수 또는 작은 수를 구한다

#include (type) max(a, b); max 함수는 두 개의 값을 비교한 후 큰 값을 반환하는 매크로입니다. 두개의 값은 같은 형식의 데이터이어야 합니다. min 함수는 두 개의 값을 비교한 후 작은 값을 반환하는 매크로입니다. 두개의 값은 같은 형식의 데이터이어야 합니다. #include #include int main() { int a = 10, b = 20; double d1 = 30.5, d2 = 20.5; printf("%d, %d: max: %d\n", a, b, max(a, b)); printf("%d, %d: min: %d\n", a, b, min(a, b)); printf("%g, %g: max: %g\n", d1, d2, max(d1, d2)); printf("%g, %g: ..

(C언어) lfind: 선형검색(linear search)를 수행한다

#include void *lfind(const void *key, const void *base, size_t *num, size_t width, int (*fcmp)(const void *, const void *)); lfind 함수는 연속된 레코드의 배열(array)에서 key로 지정된 인수값의 선형 검색을 수행합니다. 이 함수는 사용자 정의 비교 함수(fcmp)를 사용합니다. 배열은 메모리 위치가 base 에서부터 시작되고, width 바이트 만큼의 넓이를 가진 *num 개의 레코드를 갖습니다. lfind 함수는 검색키와 일치하는 첫 번째 값의 주소를 반환합니다. 만약 일치하는 값을 찾지 못하면 NULL을 반환합니다. 참고: bsearch, qsort, lsearch #include #inclu..

(C언어) kbhit: 키보드의 키가 눌러졌는지 검사한다

#include int kbhit(void); kbhit 함수는 키보드의 키가 눌러졌는지 검사합니다. 키 입력이 있다면 getch 함수나 getche 함수를 이용해서 키를 읽어 들일 수 있습니다. 키입력이 있으면 0이 아닌 값을 반환하고, 키 입력이 없으면 0을 반환합니다. *. Visual Studio에서는 kbhit 함수 대신에 _kbhit 함수를 사용합니다. 다음 예제는 1초 간격으로 정수를 1,2,3,4... 출력을 계속합니다. 아무 키나 눌려지면 멈춤이다. #include #include int main() { int i = 0; while (1) { if (_kbhit()) // 아무키나 눌려지면 while 문을 벗어납니다. break; printf("%d ", ++i); Sleep(1000)..

반응형