strcspn 문자열 중에서 일치되는 첫 문자의 위치 구하기 이번에는 strcspn 함수에 대해서 알아보겠다. strcspn 함수를 사용하려면 string.h 파일을 include 해야된다. 함수의 원형을 보면 1unsigned int strcspn(const char *string, const char *strCharSet);cs 이라고 나와있다. 사용법을 보자. 123456789101112#include #include main(){ char *str = "aossuper8.tistory.com"; char *strChar = "!@#$%^&*()_+.?>"; unsigned int pos; pos = strcspn(str, strChar); printf("%d 위치에서 일치되는 첫 문자를 발견하였습..
C언어 두 번째 큰 수 찾기 이번에는 if 문을 이용해 두 번째 큰 수를 찾는 알고리즘을 알아보자. a, b, c 3개의 정수를 입력받고 두 번째로 큰 수를 찾아보자. 그럼 어떻게 접근을 해야 될까? 간단하게 생각해보자. 그냥 다 비교하면 된다. 문제 : a, b, c 3개의 정수를 입력받고 두 번째 큰 정수를 출력해보자. input : 30 20 10 output : 20 input : 20 30 10 output : 20 input : 10 20 30 output : 20 소스를 보자. 123456789101112131415161718192021#include main(){ int a, b, c; scanf_s("%d %d %d", &a, &b, &c); if (a > b) { if (b
C언어 숫자의 합 이번에는 처음에 5를 입력하면 5개의 숫자를 입력받아서 그 숫자 합을 알아내는 것을 알아볼거다. 예를 들어보자. 입력받는 값은 1
C언어 요일 구하기 프로그램 이번에는 요일 구하기 프로그램을 만들어보자.2007년 x 월 y 일은 무슨 요일일까?라는 문제가 나왔다.그럼 어떻게 할 것인가?? 1년은 12개월이고 1, 3, 5, 7, 8, 10, 12월은 총 31일까지 있고 4, 5, 9, 11월은 30일, 2월은 28일까지 있다.요일 구하는 방법은 y = y + x 월까지의 마지막 일수를 해주고 y % 7을 해주면 된다.요일 구하는 프로그램을 C언어로 나타내 보자. 문제 : 2007년 1월 1일은 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 12345678910#include main() { int x, y; int month[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, ..
C언어 파일 입출력 (2) 이번에는 r+ w+ a+ 에 대해서 알아보자. 1234567891011121314151617// 파일에는 "aossuper8.tistory.com" 이라는 문자열이 들어가있다.#include int main(){ FILE *fp; char data[100]; fopen_s(&fp, "C:\\Users\\aossu\\Desktop\\test.txt", "r+"); fgets(data, 100, fp); printf("현재 파일에 있는 내용 : %s\n", data); fseek(fp, 5, SEEK_SET); fputs("Hello World!!", fp); return 0;}Colored by Color Scriptercs 정상적으로 출력 되는것을 볼수가 있고 메모..
C언어 파일 입출력 이번에는 파일 입출력에 대해서 배워보겠다. 파일 입출력이란? 메모장이나 바이너리 파일에 글을 넣거나 글을 불러오거나 이런 것을 뜻한다. 나는 이것을 배울 때 너무 놀라웠다. 너무 신기했고 너무 재미있다. 일단 파일 입출력에 대해서 배우기 전에 스트림에 대해서 배워보자. 스트림이란? 프로그램과 어떤 것과의 사이에 입출력을 위해서 연결된 통로. C언어에서 사용하는 표준 스트림은 크게 3가지가 있다. stdin : 프로그램으로 들어가는 데이터 입력 스트림 ( 키보드 ) stdout : 프로그램이 출력 데이터를 기록하는 스트림 ( 모니터 ) stderr : 오류나 진단을 하기위한 스트림 ( 모니터 ) stderr은 여기서 사용하지 않겠음. 일단 이렇게만 알아두고 나중에 스트림을 사용해서 출력..
memcpy, memmove, memcmp 메모리 관련 함수 이번에는 메모리 관련 함수에 대해서 알아보겠다.메모리 관련 함수에는 memcpy, memmove, memcmp가 있다.이 함수들을 사용하려면 string.h 파일을 include 해야 된다. 12345678910111213141516#include #include int main(){ char str1[50] = "aossuper8.tistory.com"; char str2[50]; char str3[50]; memcpy(str2, str1, strlen(str1) + 1); memcpy(str3, "aossuper8", 10); puts(str1); puts(str2); puts(str3); return 0;}Colored by Color S..
C언어 구조체 노드 삽입 이번에는 자료구조의 기본적인 노드와 삽입에 대해서 알아보겠다. 노드는 일단 이렇게 생겼다. 데이터 다음 노드를 가리키는 포인터 이렇게 생겼다. 이거를 C언어로 표현을 하면 12345struct Node{ int data; struct Node *nextNode;}cs 이렇게 생겼다.이런 노드는 배열 중간에 값을 추가하거나 삭제를 할 때 유용하게 사용할 수 있다.배열은 중간에 값을 추가하거나 삭제를 하면 배열을 또 하나 만들어줘야 한다.그렇기 때문에 우리는 이 Node로 해결해줄 것이다.그림 상으로 보면 이렇다. 이 밑에 있는 노드를 추가시키려고 한다. 각 노드 오른쪽 공간에는 다음 노드를 가리키는 포인터가 있다. 이렇게 추가를 시키면 된다. 두 번째 노드에서 주소를 가리키는 포인..
malloc, calloc, realloc 동적 메모리 할당 이번에는 동적 메모리 할당에 대해서 알 알보자. 동정 메모리 할당 함수에는 malloc(), calloc(), realloc() 함수가 있다 이 함수를 사용하기 위해서는 stdlib.h 파일을 include 해줘야 한다. 일단 malloc() 함수에 대해서 알아보자. void* malloc(size_t size) 함수의 원형이다. 반환형은 void*(void 포인트형)이다. 결국은 우리가 원하는 자료형으로 할 수 있다. malloc 함수는 할당된 주소를 반환한다. 그리고 malloc으로 선언된 메모리는 힙(heap) 메모리에 저장이 된다. malloc 사용법은 = (자료형*) malloc(사이즈); 이렇게 해주면 된다. 사이즈는 바이트 단위로 ..
C언어 가변인자 가변 인자란? - 인수의 개수와 타입이 미리 정해져 있지 않다는 뜻 - 대표적인 함수 : printf - printf 함수는 전달되는 인수의 개수와 타입이 모두 다르지만 정상적으로 컴파일 되고 실행된다. ● printf 함수 원형 - int printf(const char *format, ...); format이라는 이름의 문자열 상수인데 흔히 서직 문자열이라고 부른다. ... 생각 하기로는 컴파일러에게 이후의 인수에 대해서는 개수와 타입을 점검하지 않도록 하는데 이 기호에 의해 가변 인수가 가능해진다. 가변 인수 함수의 개략적인 구조는 다음과 같다. 12345678910void varFunc( int fix, ... ){ va_list ap; va_start( ap, fix ); whi..
fread fwrite 바이너리 파일 입출력 함수 이번에는 fread fwrite 함수에 대해서 알아보겠다.fread fwrite 함수는 바이너리 파일 입출력 함수이다. 이 함수가 포함되어 있는 헤더 파일은 stdio.h 파일이다.일단 코드를 보기 전에 함수의 원형을 보자. 1234size_t fread(void *buffer, size_t size, size_t count, FILE *stream);//저장할 데이터의 시작 주소, 저장할 크기, 저장할 횟수, 파일 포인터size_t fwrite(const void* buffer, size_t size, size_t count, FILE *stream);//저장할 데이터의 시작 주소, 저장할 크기, 저장할 횟수, 파일 포인터Colored by Color ..
strlwr strupr 대소문자 변환 이번에는 strlwr strupr 대소문자 변환에 대해서 알아보겠다. 일단 strlwr strupr 함수를 사용하려면 string.h 파일을 include 해야 된다. 두 개의 함수를 같이 알아보자. 123456789101112131415#include #include int main(){ char arr[100]; printf("문자열 입력 : "); gets_s(arr, sizeof(arr)); strlwr(arr); puts(arr); strupr(arr); puts(arr); return 0;}cs 이렇게 소스코드가 있다. 근데 컴파일을 해보면 이러한 오류가 난다. ??왓더?? _strlwr 뭐 이런식으로 사용 하라는거 같다. 12345678910111213..