전체 글
-
#5-6,7 포인터 배열전기전자공학/프로젝트 2017. 6. 29. 13:58
[예제 5-7]readlines 프로그램을 고쳐서 alloc 함수를 사용하지 않고 main에서 사용 가능한 배열에 입력을 저장하도록 해보라.프로그램 수행이 얼마나 빨라지는지 보라. (시간 함수를 아직 잘 못쓰겠다.) . --> 해결! : 터미널에 time ./main 하면 실행 시간을 알 수 있다.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113..
-
[Kernighan - C] #5 - 5전기전자공학/프로젝트 2017. 6. 29. 00:53
[예제 5 -1]위의 프로그램에서 숫자 앞이 아닌 다른 곳에 있는 +와 -는 0으로 취급되었다. 입력으로 읽을 수 있도록 해보라.. -- 무슨 의미인지 모르겠음.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354include #include /* 문자를 숫자로 출력하는 함수 */int getch(void);void ungetch(int); int getint(int *pn) { int c, sign; int sawsign; while(isspace(c = getch())) /* skip white space */ ; if(!isdigit(c) && c != EOF && c != ..
-
[Kernighan - C] #4-1,2 함수의 기초전기전자공학/프로젝트 2017. 6. 26. 11:49
4.1 함수의 기초 [예제 4-1]s내에서 t의 가장 오른쪽 위치를 나타내는 함수 strindex(s,t)를 작성해보라. 만일 t가 없다면 -1을 리턴.(맨 오른쪽 기준을 0으로 한 경우)1234567891011int strindex(char s[], char t[]) { int i, j, k; for (i = 0; s[i] != '\0'; i++) { for (j = i, k = 0; t[k] != '\0' && s[j] == t[k]; j++, k++) ; if (k > 0 && t[k] == '\0') return strlen(s) - (i+ strlen(t)) - 1; } return -1;}Colored by Color Scriptercs strlen(s)는 실제 s에서 \n을 포함한 길이 이므..
-
[Kernighan - C] #2-11 조건문전기전자공학/프로젝트 2017. 6. 25. 22:58
2.11 조건문 [예제 2- 10]대문자를 소문자로 바꾸는 함수 lower(p.58)을 if-else 대신 조건문을 써서 다시 작성하라.1234567891011121314151617181920212223242526272829303132333435#include #define MAXLINE 1000 int getline(char line[], int maxline);int lower(int); main() { char str[100]; int i; getline(str, MAXLINE); for (i = 0; str[i] != '\0'; i++) str[i] = lower(str[i]); printf("%s", str); } int lower(int c) { c = (c >= 'A' && c
-
[Kernighan - C] #2 - 10 지정 연산자와 수식전기전자공학/프로젝트 2017. 6. 25. 22:46
2.10 지정연산자와 수식The C Programming Language - Kernighan i = i + 2 수식을 i += 2로 바꿀수 있는데, 연산자 += 를 '지정 연산자'라고 부른다. ● 1비트 갯수 세기 함수12345678910/* bitcount: count 1 bits in x */int bitcount(unsigned x) { int b; for (b = 0; x != 0; x >> 1) if (x & 01) b++; return b; }Colored by Color Scriptercs ★인수 x를 unsigned로 선언함으로써 우측 이동시 빈 비트가 기계에 관계없이 sign비트가 아닌 0으로 채워질 수 있다. [예제 2-9]2의 보수계에서 x & (x-1)은 x의 최우측 1비트를 지운..
-
[Kernighan - C] #2-9 비트 연산자전기전자공학/프로젝트 2017. 6. 25. 22:18
2-9 비트 연산자The C Programming - Kernighan [예제 2-6]x의 우측 p번째 부터 n개의 비트를 y의 최우측 n개의 비트로 대체하고 다른 비트는 그대로 두고 리턴하는 함수 setbits(x,p,n,y)를 작성하라 (단, 0을 우측 끝이라고 나타낸다.) setbits.c1234567891011121314151617181920212223242526#include void displayBit(int); int setbits(int x, int p, int n, int y) { int sum = 0; int x_mask = (~0
-
[Kernighan - C] #2-8 증가 연산자와 감소 연산자전기전자공학/프로젝트 2017. 6. 25. 21:46
2.8 증가 연산자와 감소 연산자The C Programming - Kernighan [예제 2-4]문자열 s2의 문자 중 문자열 s1에 있는 문자들을 지우는 squeeze(s1, s2)를 작성하라squeeze.c12345678910111213141516171819202122232425262728293031323334353637383940/** Filename: squeeze.c* Author: Ssong24 * Date: 25-June-2017** The C Programming Language, Second Edition, Korean ver* by Kernighan and Ritchie** Exercise 2-4, page 64*/ #include #define TRUE 1#define FALSE ..
-
[Kernighan - C] #1-10 외부변수전기전자공학/프로젝트 2017. 6. 24. 19:18
1. 10 외부 변수The C Programming Language - Kernighan, Ritchie 프로그램을 작성하다 보면 여러 함수에서 공통으로 변수를 사용해야 될 때가 있는데, 이 변수를 '공통 변수'(global variable)이라 한다.공통 변수의 정의는 extern 이라는 명령어를 사용한다.이 변수는 함수 바깥에서도 정의하고 함수 각각에서 정의되어야 한다. 예제) 가장 긴 행 출력 프로그램 0) if (len > max) { max = len; copy(); } if (max > 0) printf("%s", longest); return 0;} /* getline: 행을 입력받아서 행의 길이를 측정 */int getline(){ int c, i; extern char line[]; fo..