지난시간 "스크래치"의 ask(질문을 묻고 답을 받는)기능과 가장 유사한 C의 명령은 바로
get_string();
예) get_string("what's your name /n");
"/n"
은 줄바꿈(Next Line.)
answer
라는 변수를 쓰면,
answer = get_string("what's your name? /n");
=
는 equal이 아니고, assign, 할당이라는 뜻. "=
"의 오른쪽에서 왼쪽으로 할당.
C는 변수의 타입을 꼭 정해줘야함.
string answer = get_string("what's your name? /n");
get_string("what's your name? /n");
에 사용자가 답하면 그 답이 answer
에 할당되는 방식. 그 할당되는 것이 string 타입이기에 변수앞에 string.
사용자의 답변이 answer
라는 이름으로 컴퓨터 메모리 어딘가에 저장된 것!
answer
를 출력하고 싶으면
string answer = get_string("what's your name? /n");
printf("hello, %s\n", answer);
%s
는 형식지정자(place holder.) 뒤에 출력될 answer가 말 그대로 문자열answer
가 아니라 string타입의 변수라는것을 알리기위한 표시. %s
의 s
는 string을 의미한다.
여기서 특이한 것. 처음 보는 코드는 오른쪽에서 왼쪽으로, 바깥에서 안쪽으로 읽으면 해석에 도움이 된다는 것!
내가 만든 소스코드가 담긴 file name은 string.c.
이것을 실행하려면, 터미널에서
$ clang -o string string.c -lsc50
-o string
은 out string 즉 string.c
라는 파일을 string.out
이라는 머신코드로 저장하도록 하는 명령어.
-l
은 link명령어, -lcs50
은 컴파일시, cs50파일을 연결하라는 명령.
더 간단히
make string
하면, 간단하게 컴파일을 수행 할 수 있다.
이렇게 하면, 소스코드에 쓰여진대로 수행하는 프로그램 완성!
"좋아하는 동물을 알려주세요"로 질문하여 동물 이름을 "animal"이라는 변수에 저장하고, 이를 "내가 좋아하는 동물은"으로 출력해주는 코드를 작성해보세요.
완성!!
출처 : [부스트코스] 모두를 위한 컴퓨터 과학 (CS50 2019) (https://www.edwith.org/boostcourse-cs-050)