C 41

strstr() 문자열 찾기

헤더파일 string.h 사용법 strstr(문자열1,문자열2); 문자열1 에서 문자열2 가 있는 지 확인 문자열이 있으면 주소를 반환 찾지못하면 NULL 예제1 #include #include int main() { char arr1[] = "C_Programing"; char arr2[] = "ram"; char *result = strstr(arr1, arr2); printf("%s", result); } 출력 raming 예제2 #include #include int main() { char arr1[] = "C_Programing"; char arr2[] = "ram"; if (strstr(arr1,arr2)!=NULL) { printf("포함 O \n"); } else { printf("포함 ..

C/C 2022.10.30

strcpy(), strncpy() 문자열 복사(copy)

헤더파일 strcpy() 문자열을 복사하는 함수 strcpy(A, B); B를 A로 복사하는 함수 char a[10]; char b[10] = "Hello"; strcpy(a, b); printf("%s\n", a); printf("%s\n", b); strcpy로 복사를 하게 되면 문자열의 끝을 나타내는 '\0' 까지 복사 >> 두 길이가 서로 다를 경우에 Overflow 발생함 문자열을 복사하기에 충분한 사이즈여야 함 strncpy() strcpy() 와 같은 문자열을 복사하는 함수이지만 매개변수가 더 필요하다. strncpy(A, B,sizeof(B)); char a[10]; char b[10] = "Hello"; strncpy(a, b,sizeof(b)); printf("%s\n", a); pri..

C/C 2022.10.19

fopen(), fclose() 파일입출력

헤더파일 fopen() 지정한 파일을 오픈 (파일스트림을 생성) filename이 지정한 파일을 연다. FILE *fopen(const char *filename, const char *mode) FILE *fopen(파일의 경로와 이름, 열기 모드); r 읽기 - 읽기만 가능하며 파일이 존재해야 한다. 존재하지 않을 경우 에러. w 쓰기 - 쓰기만 가능하며 파일을 생성한다. 파일이 존재하면 파일내용을 새로 덮어씀. a 추가 - 파일 끝에 추가만 가능하며 파일이 존재하지 않으면 파일을 새로 생성 + 읽기/쓰기 로 ‘r’, ‘w’, ‘a’와 함께 사용 b 바이너리 - 파일을 이진(binary) 모드로 오픈 t 텍스트 - 파일을 text 모드로 오픈 파일 열기 작업이 실패하면 NULL 포인터를 반환 읽기 "..

C/C 2022.10.15

time(), localtime() 시간

헤더 파일 time_t 타입 >> 시간을 다루기 위해서 만들어진 데이터 타입 32, 64비트 정수값으로 표현 1970년 1월 1일 00:00 UTC (유닉스 타임)이후 경과된 초를 정수값으로 표현 tm 구조체 struct tm { int tm_sec; // seconds after the minute - [0, 60] including leap second int tm_min; // minutes after the hour - [0, 59] int tm_hour; // hours since midnight - [0, 23] int tm_mday; // day of the month - [1, 31] int tm_mon; // months since January - [0, 11] int tm_year; ..

C/C 2022.10.13

파일 입출력

헤더파일 더보기 def.h #ifndef __DEF_H__ // 정의되지 않으면 if not define #define __DEF_H__ #define _CRT_SECURE_NO_WARNINGS #endif student.h //#pragma once #ifndef __STUDENT_H__ #define __STUDENT_H__ typedef struct _STUDENT { //_STUDENT 와 ST 같으면 안된다. char name[10]; //이름 int kor; int eng; int math; int hap; double avg; char grade; } ST; ST st; //구조체 변수 선언 (전역 변수) extern void init_student(); //함수 프로토 타입 void sho..

C/C 2022.10.11

모듈화 2 - 구조체

st_file_01.c #include "def.h" //def.h 는 보통 설정 정보를 넣는 다. //def.h 가장 위쪽으로 //" " 의미는 st_file_01.c 와 같은 폴더내에 위치 한다라는 뜻이다. #include //내부적으로 경로가 연결 (패스가 걸려있다.) #include "student.h" int main() { ST st1 = { "홍길동",100,90,80,0,0.0,'A' }; //이러한 사용방법도 존재한다. init_student(); show_student(st1); } student.c #include "def.h" #include #include #include "student.h" //함수 //학생 초기 정보 void init_student() { //문자열 복사 st..

C/C 2022.10.08

모듈화 1

기능별로 파일을 나눠 프로그래밍하는 것 예를 들면 계산기에서 필요한 기능 (더하기, 빼기, 나누기)을 나눠관리하는 것 >> 유지 보수성이 좋아진다. >> 이식성과 확장성이 좋아진다 파일을 나누더라도 완전히 독립 되는 것이 아님 main.c #include //내부적으로 경로가 연결 (패스가 걸려있다.) #include "add.h" //" " 의미는 main.c 와 같은 폴더내에 위치 한다 int main() { printf("%d\n", Add(5, 4)); } add.c #include "add.h" /* 소스파일에서 헤더 파일을 include는 아무 문제도 없다 하지만 헤더 파일에서 헤더파일을 include 하면 문제가 생길수도 있다. */ int Add(int a, int b) { return a..

C/C 2022.10.08

구조체 1

하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 똑같은 변수를 여러번 사용해야 하는 경우에 효과적 main() 밖에 사용(안에 있어도 상관 없음) typedef struct 구조체이름 { 자료형 변수명; 자료형 변수명; ... }구조체 별칭; typedef struct _STUDENT { char name[10]; //이름 int kor; int eng; int math; int hap; double avg; char grade; } ST; typedef는 자료형의 별칭을 만드는 기능 구조체 초기화 ST st1 = { "홍길동",100,90,80,0,0.0,'A' }; 구조체 변수에 접근 #define _CRT_SECURE_NO_WARNINGS #include //공통적인 정보를 구조체로 만..

C/C 2022.10.07

배열 2 - 출력

반복문을 사용하여 출력 int main() { int arr[10] = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }; //10개의 배열 for (int i = 0; i < 10; i++) { printf("%d", arr[i]); //반복문을 통한 출력 } } 배열의 크기가 바뀌면 반복문의 조건식도 바꿔야한다. sizeof 연산자를 사용하여 배열의 크기를 구할수 있다. sizeof(arr); //40 int형 변수 10개 모여 있어서 40이 출력 됨(바이트 단위) sizeof(arr)/sizeof(int); //10 sizeof를 이용해 int형 자료형 크기를 나눠줌 출력시 for (int i = 0; i < sizeof(arr) / sizeof(int); i++) { ..

C/C 2022.10.06