getopt() 함수는 콘솔 기반의 프로그램(어플리케이션)을 제작하는데 있어 옵션 값(인자, 파라미터)을 받는데 유용한 함수다.사실 '-a' 나 '--version'과 같은 옵션을 argc, argv로 처리할 수도 있겠지만 이를 직접 처리하는 것은 귀찮은 작업이다. 이를 위해 getopt 함수가 제공된다.getopt() 함수는 stdio.h 와 unistd.h 모두에 정의되어있다. 두 헤더 파일에 정의된 함수의 차이는 딱히 없는 듯 하다. hanopt.c //140924 Source by YoWu (uyu423@gmail.com) #include "stdio.h" int main(int argc, char *argv[]) { int num; extern char *optarg; extern int opt..
위 ACM 준비를 하다가 풀어본 연습문제이다.영어라 정확히는 모르겠지만 왼쪽의 문자열(최대 20byte)를 사용해 오른쪽의 문자열(최대 80byte)를 만들 수 있냐는 문제다.왼쪽의 문자열 중 하나의 문자는 반드시 한번은 사용되어야 하는 것 같고, 오른쪽의 문자열 중에 왼쪽 문자열 중 없는 문자가 없으면 NO를 출력한다. 조건을 만족하면 YES를 출력.사용한 언어는 C++ 를 가장한 C. #include "stdio.h" #include "string.h" #include "stdlib.h" int main(void) { int num; char bank[21]; char str[81]; int cnt = 0; int strsum = 0; scanf("%d", &num); for(int i = 0; i ..
#include "stdio.h" #define MAX 10 int arr[MAX] = {1,2,3,4,5,6,7,8,9}; int sum(int st, int ed) { if(st == ed) { return arr[st]; } else return sum(st, ed-1) + arr[ed]; } void main() { printf("sum : %d ", sum(0, MAX-1)); } 위 소스코드는 흔하디 흔한 1~10 까지 더해주는 프로그램이다. 대부분 이 프로그램을 코딩할 때 for문을 사용하지만 이 코드에서는 재귀함수(Recursion)가 사용되었다. 문제해결기법 강의 교수님이 말하길 재귀함수는 프로그래밍에 있어 가장 중요한 부분 중 하나이며, 이에 익숙해지기 위해서는 모든 문제에 대해 그 해..