1. Why to use fget? gets has Buffer overflow vulnerability. Therefore we must use fgets 2. How to Use? char buf[100] = {0}; char *p; printf(“input : “); fgets(buf, sizeof(buf)-1, stdin); // char 배열, SIZE, 입력 if((p = strchr(buf, ‘\n’)) != NULL) *p = ‘\0’; printf(“output : %s\n”,buf);
Category: C
String 함수
1. Include Header file #include<string.h> 2. Function 2.1. 문자열 복사 char *strncpy(char *dest, const char *src, size_t n); strcpy 함수 보완한 함수 char *strcpy(char *dest, const char *src); 2.2. 문자열 연결 char* strcat(char *dest, const char *src); char* strncat(char *dest, const char *src, size_t n); 2.3. 문자열 비교 int strcmp(const char *s1, const char […]
ctags
1. ctags란? Ctags is a programming tool that generates an index (or tag) file of names found in source and header files of various programming languages. 소스 파일 분석시 함수, 변수 따라갈 때 사용 2. 설치 방법 [ubuntu] apt-get install ctags 3. 사용 방법 ctags -R ; 소스파일을 자동으로 분석해서 함수, 변수를 tags […]
printf color
1. 개요 printf로 출력시 색상 적용 2. 적용 화면 3. Source Code #include <stdio.h> int main(){ printf(“00 : \x1b[00m color \x1b[0m\t”); printf(“01 : \x1b[01m color \x1b[0m\t”); printf(“02 : \x1b[02m color \x1b[0m\t”); printf(“03 : \x1b[03m color \x1b[0m\t”); printf(“04 : \x1b[04m color \x1b[0m\t”); printf(“05 : \x1b[05m color \x1b[0m\t”); printf(“06 : \x1b[06m color \x1b[0m\t”); printf(“07 : […]
지하철 프로그램
1. 내용 1-1. 처음에 프로그램을 실행하면 메뉴가 나옴 1. 전철 노선도 보기 2. 환승역 조회 3. 전철역 조회 4. 전철 경로 안내 1-2. 사용자로부터 입력을 받으면 아래의 내용 수행 1. 전철 노선도 보기 입력 : N 노선 출력 : N 노선의 역 전체 출력 2. 환승역 조회 입력 : N 노선 출력 : N 노선의 […]
소요 시간 구하기
1. 내용 프로그램 실행 시간(소요 시간) 구하기 2. header file time.h stdio.h 3. source code #include <stdio.h> #include <time.h> int main(){ time_t start_t, end_t; start_t = clock(); … end_t = clock(); printf(“TIME : %f\n”,(float)(end_t-start_t)/CLOCKS_PER_SEC); return 0; }
gcc compile
1. 단일 파일 컴파일(.c → 실행파일) gcc [소스파일.c] -o [실행파일] ./[실행파일] 2. 여러 파일 링크해서 컴파일(a.c b.c c.c → 실행파일) gcc -c [소스파일.c] gcc -o [실행파일] [오브젝트 파일1.o] [오브젝트 파일2.o] [오브젝트 파일3.o] …
매크로 사용하는 이유 #define
C 소스를 분석하다보면 맨 위에 #include 가 있고 그 근처에 #define이 있다. #define 부분이 매크로(전처리기)인데 #define MAX 100 #define ADD(x) (x) * (x) 이런 식으로 정의를 하기도 하고, 연산을 하기도 한다. 매크로를 쓰면 변수마다 괄호도 일일이 해야하고(괄호 넣고/안 넣고 결과값 다름), 개행할 때마다 \를 넣어줘야하는데 차라리 함수를 쓰지 왜 매크로를 쓸까? https://social.msdn.microsoft.com/Forums/expression/ko-KR/ab0afa88-7837-43a3-af01-267ac2a87d24/-?forum=visualcplusko 위의 내용을 정리하면 […]
달력 프로그램
1. 조건 1-1. 윤년 계산 1-2. 달력 출력하는 로직 2개 이상 : 1년 1월 1일을 기준으로 계산, 오늘을 기준으로 계산 등등 1-3. .c 파일 2개 이상으로 분할(함수별로 파일 분할) 2. 입력 연도(2012), 월(11 또는 a(all)) 3. 출력 해당 월의 달력 단, 월 입력시 a를 받을 경우 해당 연도의 모든(1~12) 월 출력 * […]