본문 바로가기

Language/C

(7)
<C언어 기초> 07. 문자열 · 문자열 * 문자열과 문자 - 우리는 지금까지 문자열을 사용하기 위해서 string자료형을 사용하였다. 문자열(string)은 실제로는 문자(char)자료형 데이터들의 배열이다. - string s = "HI!"; 와 같은 문자열 s가 정의 되어있다고 한다면 메모리 상에 다음과 같이 저장될 것이다. - s는 문자의 배열이므로 s[0] 과 같은 방법으로 문자에 접근할 수 있다. - \0은 문자열의 끝을 나타내는 널 중단 문자이다. 이는 모튼 비트가 0인 1바이트이다. - 이번에는 여러 문자열의 배열을 보자. string names[3]; names[0] = "HARRY"; names[1] = "IU"; names[2] = "SUZY"; printf("%s\n", names[0]); printf("%c%c..
<C언어 기초> 06. 배열 * 배열 - 배열은 같은 자료형의 데이터를 메모리상에 연이어서 저장하고 그것을 하나의 변수로 관리하고 싶을 때 사용한다. - 72점 73점 33점이라는 점수를 scores라는 변수 하나로 관리하고 싶다고 하자. #include #include int main(void) { // Scores int scores[3]; scores[0] = 72; scores[1] = 73; scores[2] = 33; // Print average printf("Average: %i\n", (scores[0] + scores[1] + scores[2]) / 3); } - 위와 같이 배열 안의 자료형과 원소의 갯수를 이용하여 변수를 선언한다. - 그리고 0부터 차례로 인덱스값을 대괄호[]에 입력하여 점수를 넣어 주었다. -..
<C언어 기초> 05. 사용자 정의 함수 · 사용자 정의 함수 * 사용자 정의 함수 - 우리는 자주 사용하는 기능을 함수로 직접 만들어서 관리할 수 있다. - 지금 까지 사용했던 printf 와 같은 함수도 과거에 누군가가 만들어 둔 함수이다. - 사용자에게 5번 인사하는 프로그램을 만든다고 생각해보자. #include int main(void) { for (int i = 0; i < 3; i++) { printf("hello\n") } } - 지금까지 배운 내용으로 위를 간단하게 만들 수 있다. - 하지만 다른 구문들을 떠나 인사를 하는 행위자체에 집중을 하고 싶고, 더 효율적으로 코드를 관리하고 싶을 수 있다. 그래서 위를 함수로 만들어보자. #include void hello(void) { printf("hello\n") } int mai..
<C언어 기초> 04. 자료형과 연산자 1. 자료형 * 데이터 타입 - 변수의 데이터 타입형식들은 다음과 같다. - bool : 불리언 표현으로써 True, False를 의미한다. (때에 따라 1,0, yes, no 포함) - char : 문자 하나를 의미한다. (ex. 'A', '?') - string : 문자열 - int : 정수 (약 40억 미만까지만 저장 가능) - long : 더 큰 크기의 정수 - float : 부동소수점을 갖는 실수 - double : 부동소수점을 갖는 더 큰 실수 * CS50라이브러리의 get 함수 - 지금까지 우리는 문자열을 받기위해 cs50라이브러리의 get_string함수를 사용했으나 다른 데이터 타입을 받아오는 함수들도 존재한다. - get_char, get_double, get_float, get_ing..
<C언어 기초> 03. 루프 1. 정수인 변수 - 우리는 지난 시간에 문자열 변수를 string으로 지정한다는 것을 배웠다. 그렇다면 정수는 어떻게 지정할까. int counter = 0; - 위는 counter라는 변수를 0으로 할당한 코드이다. 정수(integer)는 int를 사용한다. - 이름이 카운터이므로 1을 추가하는 코드를 작성해보자. counter = counter + 1; - 위처럼 작성하면 간단하게 1이 추가되어 counter에 새로 할당된다. 하지만 1씩 추가할일은 매우 많은 경우에서 발생하는데 이 때마다 저렇게 길게 작성할 필요는 없다. counter += 1; counter++; - 위의 두가지 코드 모두 같은 기능을 수행한다. 2. 반복문(loop) * while문 - 루프는 어떤 일을 계속 반복하는 것을 말..
<C언어 기초> 02. 조건문 · 조건문 * if - x와 y의 크기를 비교해서 x가 y보다 큰지 작은지를 출력하는 프로그램을 만든다고 가정하자. - x가 y보다 작을 경우 "x is less than y"를 출력해보자. if (x < y) { printf("x is less than y\n"); } - if 문으로 조건을 시작하고 괄호안에 조건을 적는다. - 위는 x가 y보다 작으면 출력문이 실행되는 구조이다. - 참고로 조건문의 끝에는 ;(세미콜론)을 굳이 붙이지 않는다. 세미콜론은 주로 함수의 끝에 넣는다. * else - 위를 좀더 보완하여보자. x가 y보다 작지 않으면 "x is not less than y"를 출력하자. if (x < y) { printf("x is less than y\n"); } else { printf..
<C언어 기초> 01 출력과 문자열 1. 출력 - 프로그래밍의 시작은 역시 출력이다. C언어로 "hello, world"를 출력하려면 어떻게 해야할지 천천히 살펴보자. #include int main(void) { printf("hello, world\n"); } - 가장 첫줄의 include 는 출력과 관련된 C언어의 표준라이브러리인 stdio.h를 불러온다는 의미이다. - int main(void){} 는 코드의 시작을 알린다고 보면된다. 앞으로 작성할 코드 모두 이 괄호안에 작성하게 된다. - printf()는 출력함수이며 괄호 안에 쌍따옴표로 문장을 적을 수 있다. 이 때 \n 은 개행문자로써 출력후 문단을 넘기는 역할, 즉 엔터를 쳐주는 역할이다. - 그리고 끝에 ;(세미콜론)은 우리가 문장을 작성할 때 .(마침표)로 끝을 내는 ..