๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/CS50 ์ฝ”์นญ์Šคํ„ฐ๋””

[CS50 ์ฝ”์นญ์Šคํ„ฐ๋””] 2์ฃผ์ฐจ_C์–ธ์–ด

by - ์˜คํŠธ - 2021. 2. 25.

[2์ฃผ์ฐจ ๊ฐœ๋…]

โœ”๏ธ C ๊ธฐ์ดˆ -  stdio.h, clang,  ์ปดํŒŒ์ผ๋Ÿฌ

clang hello.c ๋ผ๋Š” ๋ช…๋ น์–ด๋Š” “clang” ์ด๋ผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๋กœ “hello.c”๋ผ๋Š” ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ -> a.out ์ด๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ

 

โœ”๏ธ ๋ฌธ์ž์—ด - ํ˜•์‹์ง€์ •์ž, string, make

 

โœ”๏ธ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฃจํ”„ - int, if, while, for

= : ํ• ๋‹น ์—ฐ์‚ฐ์ž

== : ๋น„๊ต(๋™๋“ฑ) ์—ฐ์‚ฐ์ž

 

โœ”๏ธ ์ž๋ฃŒํ˜•, ํ˜•์‹ ์ง€์ •์ž, ์—ฐ์‚ฐ์ž - char, long, float, double, %, &&, ||

%c : char

%f : float, double

%i : int

%li : long

%s : string

 

โœ”๏ธ ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜, ์ค‘์ฒฉ ๋ฃจํ”„

 int get_positive_int(void) : ์ถœ๋ ฅ์˜ ์ข…๋ฅ˜(์–ด๋–ค ๊ฐ’์„ ๋ฐ›์•„์™€์„œ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋Š” ๊ฒฝ์šฐ์— int ์‚ฌ์šฉ)

int get_positive_int(void) ์ž…๋ ฅ์˜ ์ข…๋ฅ˜(์ž…์ถœ๋ ฅ์ด ์—†๋‹ค๋ฉด void ์‚ฌ์šฉ)

 

โœ”๏ธ ํ•˜๋“œ์›จ์–ด์˜ ํ•œ๊ณ„ - ๋ฉ”๋ชจ๋ฆฌ, ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ

์ปดํ“จํ„ฐ๋Š” RAM(๋žœ๋ค ์•ก์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ)์ด๋ผ๋Š” ๋ฌผ๋ฆฌ์  ์ €์žฅ์žฅ์น˜๋ฅผ ํฌํ•จ -> RAM์€ ์œ ํ•œํ•œ ํฌ๊ธฐ์˜ ๋น„ํŠธ๋งŒ ์ €์žฅ -> ๋ถ€์ •ํ™•ํ•œ ๊ฒฐ๊ณผ ๋ฐœ์ƒ

int์—์„œ๋Š” 32๊ฐœ์˜ ๋น„ํŠธ๊นŒ์ง€ ํ‘œํ˜„ ๊ฐ€๋Šฅ ->  ๊ทธ ์ด์ƒ์˜ ์ˆซ์ž๋Š” ์ €์žฅ ๋ถˆ๊ฐ€ -> ๋ถ€์ •ํ™•ํ•œ ๊ฒฐ๊ณผ ๋ฐœ์ƒ

 

[2์ฃผ์ฐจ ํŒ€๋ณ„๋ฏธ์…˜]

#include <string.h>
#include <stdio.h>
#include <cs50.h>

int main(void) {
    
    char day[10]; // ์š”์ผ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ, ํฌ๊ธฐ๋ฅผ ๋„‰๋„‰ํ•˜๊ฒŒ ์ฃผ๊ธฐ ์œ„ํ•ด 10์œผ๋กœ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
    printf("์š”์ผ์„ ์ž…๋ ฅํ•˜์„ธ์š”: ");
    scanf("%s", day); // ์š”์ผ์„ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค.

    if (strcmp(day, "์›”์š”์ผ") == 0) // strcmp ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์š”์ผ ๋ณ€์ˆ˜์™€ "ใ…‡์š”์ผ"์ด ๊ฐ™์„ ๊ฒฝ์šฐ
        printf("์›”์š”์ผ : ์ฒญ๊ตญ์žฅ"); // ๋ฉ”๋‰ด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
    else if (strcmp(day, "ํ™”์š”์ผ") == 0) // ํ™”~์ผ์š”์ผ๋„ ๋˜‘๊ฐ™์ด ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
        printf("ํ™”์š”์ผ : ๋น„๋น”๋ฐฅ");
    else if (strcmp(day, "์ˆ˜์š”์ผ") == 0)
        printf("์ˆ˜์š”์ผ : ๋œ์žฅ์ฐŒ๊ฐœ");
    else if (strcmp(day, "๋ชฉ์š”์ผ") == 0)
        printf("๋ชฉ์š”์ผ : ์นผ๊ตญ์ˆ˜");
    else if (strcmp(day, "๊ธˆ์š”์ผ") == 0)
        printf("๊ธˆ์š”์ผ : ๋ƒ‰๋ฉด");
    else if (strcmp(day, "ํ† ์š”์ผ") == 0)
        printf("ํ† ์š”์ผ : ์†Œ๋ถˆ๊ณ ๊ธฐ");
    else if (strcmp(day, "์ผ์š”์ผ") == 0)
        printf("์ผ์š”์ผ : ์˜ค์‚ผ๋ถˆ๊ณ ๊ธฐ");
    else // ์š”์ผ์„ ์ž…๋ ฅํ•˜์ง€์•Š์€ ๊ฒฝ์šฐ ์ž˜๋ชป ์ž…๋ ฅํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
        printf("์ž˜๋ชป ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค");
        
    return 0;
    
    // ์œ„์— ์˜ฌ๋ ธ๋˜ ์ฝ”๋“œ๊ฐ€ ๋ณต์‚ฌํ•˜๋Š” ๊ณผ์ •์—์„œ ์ž˜๋ ค์„œ ๋ฐ‘ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
    // strcmp ํ•จ์ˆ˜ : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋“ค์–ด์˜จ ๋‘๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๋น„๊ต ํ•˜์—ฌ ๋ฌธ์ž์—ด์ด ์™„์ „ํžˆ ๊ฐ™๋‹ค๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ๋‹ค๋ฅด๋ฉด ์Œ์ˆ˜ ํ˜น์€ ์–‘์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
    // strcmp ํ•จ์ˆ˜๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด์„  ํ—ค๋”ํŒŒ์ผ <string.h>์ด ํ•„์š”
    // strcmp(str1, str2)์—์„œ str1<str2 ์ธ ๊ฒฝ์šฐ์—๋Š” ์Œ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜, str1>str2 ์ธ ๊ฒฝ์šฐ์—๋Š” ์–‘์ˆ˜ ๋ฐ˜ํ™˜, str1์™€ str2๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
    
}