본문 바로가기

전체 글163

C언어 기초 5. scanf() 함수 scanf() 1) scanf() scnaf() 함수는 프로그램 사용자로부터 값을 입력받도록 하는 함수이다. 사용자가 변수의 값을 정할 수 있다. int myScore; printf("당신의 점수는? "); scanf("%d", &myScore); printf("내 점수는 %d점입니다.", myScore); intput1 80 output1 당신의 점수는? 내 점수는 80점입니다. 실제 콘솔창에는 다음과 같은 결과가 보일 것이다. 당신의 점수는? 80 내 점수는 80점입니다. 캡쳐가 제한되는 환경에서 작성하는 글이므로, 실제로 코드를 실행해보며 이 블로그에서 표현하는 방식에 익숙해지기를 바란다. 또한 이 표현 방식은 작성자가 임의로 만든 것이 아니다. 이 코드에서는 변수 myScore의 값을 코드상에서 .. 2019. 8. 15.
C언어 // 알아두면 쓸모 있는 지식 3. 같은 숫자인데 거짓을 반환하는 이유 모종의 이유로 숫자를 int형이 아닌 char형으로 받아서 switch문을 다음과 같이 멋지게 완성했다. 혹은 int로 하더라도 결과는 같을 것이다. /* #include */ char choice; choice = getch(); switch(choice) { case 1: ... case 2: ... case 3: ... default: ... } 그리고 키보드로 1~3 사이의 값을 입력했다. 그러나 어떤 값을 입력하든 default로 넘어가는 것이다. 우리의 기대를 만족시켜줄 코드는 다음과 같이 짜야한다. /* #include */ char choice; choice = getch() - '0'; switch(choice) { case 1: ... case 2: ... case 3: ... defa.. 2019. 8. 15.
C언어 // 알아두면 쓸모 있는 지식 2. 문자열 비교하기 우리는 두 문자열 str1, str2가 같은지 알고 싶다. 하지만 str1과 str2의 문자열이 같든 다르든 str1 == str2 이런식으로 연산을 한다면 원하는 결과를 얻기 힘들다. 정확한 비교를 위해서는 다음과 같이 비교해야 한다. /* #include #include */ if (!strcmp(str1, str2)) printf("두 문자열은 동일하다"); 참고로 strcmp 는 string comparison 에서 나온 듯 하다. 그리고 위 조건식은 strcmp(str1, str2) == 0과 동일하다. strcmp는 두 문자열이 얼마나 다른지 그 수치를 반환하는 함수이다. 반환되는 값은 사전순(아스키코드 순)과 관련이 있다. 따라서 0이라는 값이 반환된다면 두 문자열은 0만큼 다르다. 즉, 같.. 2019. 8. 15.
C언어 기초 4. 변수와 자료형 변수와 자료형 정수 자료형 실수 자료형 1) 변수와 자료형 #include int main(void) { printf("Hello, World!"); return 0; } 우리의 첫 번째 코드이다. 이 코드에도 자료형이 숨어있다. int가 바로 자료형이다. 자료형의 역할은 숫자를 다룰 때 C언어에게 이 숫자가 어떤 숫자인지 알려주는 역할을 한다. C언어에서는 정수와 실수로 구분한다. int는 integer에서 세 글자를 따 온 것으로 정수를 나타낸다. 실수를 나타내는 자료형은 double이다. (double floating point에서 따온 것 같다.) 이전에 printf()함수를 공부하면서 %d를 이용해 다룬 숫자를 일회용으로 사용한 숫자이다. 숫자를 일회용으로 사용할 것이 아니라면 변수라는 형태로 .. 2019. 8. 4.
C언어 기초 3. printf() 함수 printf() 1) printf() 본 글에 앞서 Hello, World! 를 출력하는 코드를 살펴봤었다. 이번에는 그 코드 중 printf()에 관하여 설명하고자 한다. printf()는 소괄호() 안에 있는 문자열을 모니터 상에 출력해준다.(100% 정확한 표현은 아니다.) 문자열은 "" 사이에 채워넣을 수 있다. "Hello, World!"는 Hello, World!를 문자열로 나타낸 것이다. 마찬가지로 "123"과 같이 숫자도 문자열로 표현할 수 있다. 전 글에서 한 가지 빼 먹은 글이 있는데 원래는 printf("Hello, World!\n"); 이렇게 작성하려고 했었다. C언어를 처음 공부하는 입장이라면 무엇이 바뀌었는지 쉽게 눈에 들어올 것이다. '\n'가 추가됐다. 이 문자는 '\n'가 .. 2019. 8. 4.
C언어 // 알아두면 쓸모 있는 지식 1. 조건문에서 범위 나타내기 초보자들이 자주 실수하는 부분이나 흥미를 가질만한 주제를 가지고 이 시리즈를 연재할 예정이다. 전체적인 구조가 정해져 있는 것은 아니고 그때그때 생각나는대로 적을 생각이다. C언어 기초 시리즈와는 별개로 진행된다. 첫 번째로 우리가 하고자 하는 것은 if같은 조건문 안에서 변수 v의 범위를 a < v < b 이런 식으로 정하고 싶을 때 어떻게 해야하는가? 가장 먼저 다음과 같은 코드를 떠올릴 것이다. if (a < v < b) 이 코드는 우연히 원하는 결과를 얻어낼 수 있을 지 몰라도 절대로 맞는 코드가 아니다. 항상 원하는 결과를 얻기 위해서는 다음과 같이 짜야 한다. if (a < v && v < b) 그렇다면 a < v < b는 왜 틀리며 그럼에도 에러가 뜨지 않는 이유는 무엇인가? 편의를 위해 a.. 2019. 7. 27.
C언어 기초 2. C언어 코드 맛 보기 본격적으로 C언어를 공부하기에 앞서 가장 간단한 C언어 코드 하나를 소개하겠다. #include int main(void) { printf("Hello, World!"); return 0; } 글 쓰는 여건상 결과를 출력하지 못 하는 점 양해 바란다. 위 코드의 출력은 다음과 같다. Hello, World! 당장 이 코드를 전부 이해할 필요는 없다. 다만 어떤 구조인지만 대략적으로 살펴보자. 위의 코드는 두 가지 부분으로 나눌 수 있다. #include 부분과 main이라는 이름을 갖고 중괄호{}로 둘러싸여 있는 부분이다. #include 는 이 프로그램이 stdio.h라는 도구를 포함(사용)하겠다는 뜻이다. 입문자들이 자주 오타를 내는 부분으로 studio가 아니라 stdio인 것에 유의하라. (STa.. 2019. 7. 27.
C언어 기초 1. C언어란 무엇인가? 프로그래밍이란 무엇일까? 우리는 컴퓨터를 통해 우리의 일을 보다 쉽게 처리하고 싶다. 컴퓨터는 0과 1로만 이루어진 기계어를 사용하기 때문에 명령을 내릴 때에도 기계어를 사용해야 컴퓨터가 이해할 수 있다. 하지만 사람은 기계어를 이해하기 어렵고 컴퓨터는 사람의 언어를 이해할 수 없다. 그래서 C언어와 같은 프로그래밍 언어를 이용하여 컴퓨터에 명령을 내리는 것이다. 우리가 알아야할 사실이 하나 더 있다. 컴파일러의 존재다. 사실 컴퓨터는 C언어를 이해하지 못 한다. 프로그래밍 언어를 기계어로 변환하는 과정을 컴파일이라고 하고 이를 수행하는 녀석을 컴파일러라고 한다. 그리고 컴파일이 완료되면 우리가 내린 명령에 대한 결과를 보여준다. C언어의 가장 큰 특징은 메모리를 관리할 수 있다는 점이다. 당장은 이해하.. 2019. 7. 14.
C언어 기초 0. content&머리말 머리말 이제는 C언어에 대한 많은 정보가 한글로도 찾을 수 있습니다. 저도 C언어에 대한 지식을 공유하고자 합니다. 이 강의노트(?)를 쓰는 저의 목표는 다음과 같습니다. - 끝까지 작성할 것 - 반드시 필요한 것 위주로 작성할 것 - 되도록 쉽게 작성할 것 - C언어를 배우는 목적과 공부 방향을 제시할 것 글은 먼저 최대한 짧게 쓰고 C언어를 배웠다면 몰라서는 안 될 내용들을 먼저 구성합니다. 그 다음 2차로 쓰게 된다면 사용빈도가 낮으나 알고있어야 할 내용들과 알아두면 유용한 기술들(사실 라이브러리 함수를 말하는 것이나 이것은 지금 이해하지 않아도 됨.) 그리고 공부하면서 풀어보면 실력 향상에 도움이 될 문제들을 소개하고 풀이를 올리도록 하겠습니다. 여러분이 C언어를 배우는 목적이 있을 것입니다. C.. 2019. 7. 14.