C์ธ์ด์ ๋ฌธ์์ด, ์กฐ๊ฑด๋ฌธ, ๋ฃจํ์ ๋ํด ๋ณต์ตํด๋ณด์.
์ง๋ ์๊ฐ "Hello, world"๋ฅผ printf
ํจ์๋ฅผ ์ฌ์ฉํด ์ถ๋ ฅํด๋ณด์๋ค. ์ค๋์ ๋ ๋์๊ฐ, ์ด๋ฆ์ ๋ฌป๋ ์ง๋ฌธ์ ๋ํ ๋ต์ ๋ฐ์ ์ธ์ฌ๋ฅผ ํ๋ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์! ๊ทธ๋ฆฌ๊ณ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฃจํ ์์ฑ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ๋ค.
string์ ํ๋ก๊ทธ๋๋จธ๋ค์ด ๋จ์ด๋ ๊ตฌ์ , ๋ฌธ์ฅ์ ๋ถ๋ฅด๋ ๋จ์ด์ด๋ค. ""(ํฐ๋ฐ์ดํ)์์ ๋ค์ด๊ฐ๋ ํ๊ฐ ์ด์์ ๋ฌธ์๋ฅผ ๋ค string์ด๋ผ๊ณ ํ๋ค.
get_string
scratch์์ askํจ์์ ๊ฐ์ฅ ์ ์ฌํ ํจ์๋ get_string
ํจ์์ด๋ค.
string answer = get_string("what's your name?\n");
C์ธ์ด์์ =(๋ฑํธ)๋ ํ ๋น์ฐ์ฐ์๋ก, ์ค๋ฅธ์ชฝ์ ์๋ ๊ฒ์ ์ผ์ชฝ์ ์ง์ ํ๋๋ ๊ธฐ๋ฅ์ ์ํํ๋ค. ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๊ฐ๋ ํ์ดํ๋ผ ์๊ฐํ๋ฉด ๋๊ฒ ๋ค. โฌ
answer๋ ๋ณ์์ ์ด๋ฆ์ผ๋ก, ์์๋ก ๋ค์ด๋ฐ ๊ฐ๋ฅํ๋ค. C์์๋ ๋ณ์๊ฐ ์ ์ฅํ๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ฅผ ๊ผญ ์ ํํ๊ฒ ๋ณ์ ์์ ๋ช ์ํด์ฃผ์ด์ผํ๋ค. ์ฌ๊ธฐ์ answer๋ผ๋ ๋ณ์๋ ์ด๋ฆ์ ๋ฐ์์ผํ๊ธฐ ๋๋ฌธ์ string์ผ๋ก ์ง์ ํด์ฃผ์๋ค. ์ฌ๊ธฐ์ ๋ณ์์ ์ข ๋ฅ, string์ ํ์์ง์ ์๋ผ ํ๋ค.
์ ํจ์๋ฅผ ์คํํ๋ฉด, ๋ฐํ ๋ฐ์ ๊ฐ์ answer๋ผ๋ ๋ณ์์ ์ ์ฅํ๊ฒ๋๋ค. ์ด์ ๋ฐํ ๋ฐ์ ๊ฐ์ printf
๋ก ์ถ๋ ฅํด๋ณด์.
printf("Hello, %s\n",answer);
๋ฐํ๋ฐ์ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด์๋ % + ํ์์ง์ ์
๋ฅผ ์์ฑํด์ฃผ๊ณ ,(์ฝค๋ง)
์ ๋ณ์๋ช
์ ๊ฐ์ด ์
๋ ฅํ๋ค. ์ ํจ์์์๋ ๋ณ์์ ํ์์ง์ ์ string์ s๋ฅผ ๋ฃ์ด์ฃผ๊ณ , ๋ณ์๋ช
answer๋ฅผ ์
๋ ฅํ๋ค.
๊ทธ๋ฐ๋ฐ ์ด ํจ์๋ฅผ compileํ๋ฉด ์ค๋ฅ๊ฐ ๋ฌ๋คใ
ใ
string์ด๋ผ๋ ๋ฌธ์์ด ํ์๊ณผ get_string
์ด๋ ํจ์๊ฐ <stdio.h>
์๋ ํฌํจ๋์ด์์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
make
๋ช
๋ น์ดstring๊ณผ get_string
์ ๋ํ ์ฝ๋๊ฐ ํฌํจ๋์ด์๋cs50.h
๋ฅผ ์ฐ๊ฒฐํด ์ค๋ฅ๋ฅผ ํด๊ฒฐํด๋ณด์.
#include <cs50.h>
1) ์ฐ์ ์์ค์ฝ๋์์ <cs50.h>
๋ฅผ ์ฐ๊ฒฐํ๊ณ , 2) ํฐ๋ฏธ๋์ฐฝ์์ ์ปดํ์ผ์ -lcs50
๋ผ๋ ๋ช
๋ น์ด๋ฅผ ์ถ๊ฐํด์ค๋ค.
-ใ
ฃ
์ Link๋ผ๋ ์๋ฏธ๋ฅผ ์ง๋ ์ธ์์ ํ์ผ๋ช
์ธ "cs50"์ ํฉ์น ๊ฒ์ด๋ค. ์ด๋ฅผ ํตํด ์ปดํ์ผ์ cs50ํ์ผ์ ์ฐ๊ฒฐํ ์ ์๋ค.
์์ ๊ฐ์ ๋ช
๋ น์ด ๋์ make
๋ผ๋ ๋ช
๋ น์ด๋ฅผ ์ฐ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ๋์ผํ ์์
์ ์ํํ ์ ์๋ค.
ํ๋ก๊ทธ๋จ ์คํ ์ฑ๊ณต!
counter๋ผ๋ ๋ณ์์ ์ซ์๋ฅผ ์ ์ฅํ๋ ค๋ฉด, ์ฐ์ ๋ณ์์์ ๋ฐ์ดํฐ ์ข ๋ฅ "์ ์"๋ฅผ ๋ช ์ํด์ค์ผ ํ๋ค. int๋ integer(์ ์)๋ผ๋ ์๋ฏธ์ด๋ค.
int counter = 0;
์ด๋ ๊ฒ ํ๋ฉด counter๋ผ๋ ๋ณ์์ 0์ ์ ์ฅ(์ด๊ธฐํ)ํ ์ ์๋ค.
counter = counter + 1;
=๋ ํ ๋น์ฐ์ฐ์๋ก, ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก๋ผ๋ ์๋ฏธ์ด๋ค. ๋ฐ๋ผ์, ์ค๋ฅธ์ชฝ counter์ 1์ ๋ํ ๊ฐ์ ์ผ์ชฝ counter์ ์ ์ฅํ๋ค๋ ๋ป์ด ๋๋ค. โป์ด๋ฏธ ์ ์ค์์ ๋ณ์๊ฐ ์ ์๋ผ ์ ์ธํ๊ธฐ ๋๋ฌธ์ ํ์์ง์ ์(int)๋ฅผ ์ธ ํ์๊ฐ ์๋คโป
์๋์ ๋ ๋ฐฉ๋ฒ๋ ๋ณ์์ ๊ฐ์ 1์ฉ ์ฆ๊ฐ์ํค๋ ๋์ผํ ๋ฐฉ๋ฒ์ด๋ค.
counter += 1;
counter++;
if ( x < y ){
printf("x is less than y");
}
if
์ ()
์์๋ ์กฐ๊ฑด์ด ๋ค์ด๊ฐ๊ณ , { }
์์๋ ์กฐ๊ฑด์ ๋ง์กฑํ ๋ ์ํํ๊ณ ์ํ๋ ์์
์ด ๋ค์ด๊ฐ๋ค.
else
์ else if
๋ฅผ ์ด์ฉํด, ์ฒซ๋ฒ์งธ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ ๊ฒฝ์ฐ์ ๋ํ ๊ฒฝ์ฐ๋ ๋ง๋ค ์ ์๋ค.
if ( x < y ){
printf("x is less than y");
}
else ( x > y ){
printf("x is greater than y");
}
if ( x < y ){
printf("x is less than y");
}
else if ( x > y ){
printf("x is greater than y");
}
else if ( x == y){
printf("x is equal to y");
}
๋ ๊ฐ์ด ๊ฐ๋ค, ์ผ์นํ๋ค๋ ==(์ผ์น ์ฐ์ฐ์)๋ก ํํํ๋ค.
๊ทธ๋ฐ๋ฐ ์ ์ฝ๋์์ 1) x < y
2) x > y
๋ผ๋ ๋ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ, ๋์ฌ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ x = y
๋ผ๋ ์กฐ๊ฑด ํ๋ ๋ฐ์ ์๋ค. ๋ฐ๋ผ์ else
๋ผ๋ ์ฝ๋๋ก ๋ ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์๋ค.
if ( x < y ){
printf("x is less than y");
}
else if ( x > y ){
printf("x is greater than y");
}
else {
printf("x is equal to y");
}
์ด์ ๊ฐ์ด ์ต๋ํ๐๋ ๊ฐ๊ฒฐํ ์ฝ๋๐๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ค์ํ๋ค. ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ์ CPU๋ฅผ ์ฌ์ฉํจ์ผ๋ก ํจ์จ์ฑ์ ๋์ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค!
while ( ){
}
while๋ค ()
์์ ์กฐ๊ฑด์ ์์ฑํ๊ณ , {}
์์ ์กฐ๊ฑด์ด ๋ง์กฑํ ์ ์ํํ ์์
์ ์์ฑํ๋ฉด ๋๋ค.
while (true){
printf("hello, world");
}
์์
์ ์์ํ ๋ฐ๋ณตํ๊ฒ ํ๊ณ ์ถ๋ค๋ฉด, ์กฐ๊ฑด์ ํญ์ ์ฐธ์ธ true
๋ก ์์ฑํ๋ค.
int i = 0;
while ( i < n ){
printf("hello, world");
i = i + 1;
}
for
๋ฌธ ์ฌ์ฉ)for ( int i = 0; i < n; i =i + 1; ){
printf("hello, world");
}
for
๋ฌธ์ ์ฌ์ฉํด ๋ ๊ฐ๊ฒฐํ๊ฒ ํํํ ์ ์๋ค. for(๋ณ์ ์ด๊ธฐํ; ๋ณ์ ์กฐ๊ฑด; ๋ณ์ ์ฆ๊ฐ)
์ ํ์์ ๋ฐ๋ผ ์์ฑํ๋ค.