String(문자열)
따옴표, 큰따옴표 안에 들어간 0개 이상의 문자 배열을 말한다. (' ', " ")
여기서 0개 이상인 이유는 따옴표만 존재해도 컴퓨터는 빈 문자열(빈 객체)로 인식하는데 그 역시 문자열이다.
왼쪽에서 ask를 실행시키면 What's your name? 이라는 문장이 실행된다. 이 것을 C로 만들 때에는
string(형식지정자), answer(변수 이름) =get_string(함수) ' What's your name? \n' (함수에 의해 실행될 문자열) ; (세미콜론)
의 구성으로 만들 수 있다.
형식지정자
컴퓨터에게 지금 동작을 실행할 요소들이 string이라고 말해주는 것.
(변수가 저장하는 데이터의 종류를 아주 정확하게 명시)
변수
어떤 동작을 실행시킬 때 해당 동작에 관한 코드에 이름을 붙여주는 것.
이름을 받은 변수는 메모리에 저장되어 우리가 변수로 저장한 것을 사용하고 싶을 때
편리하게 꺼내서 사용할 수 있도록 해준다.
함수
행동을 위한 명령
이제 밑에 있는 answer을 C로 구현한다면
printf(hello, % s\n' , answer);
% 는 왜 써주지?
answer이라는 변수에 들어있는 이름을 출력을 해야 하기 때문에 %를 사용
s는 왜 써야해?
어떤 데이터의 종류를 받을지 알려주는 것!
이름이라는 문자열을 받기 때문에string에서의 s를 % 뒤에 붙여서 인자를 받아준다.
* 언제든 궁금증이 생기면 직접 해보는 게 최고의 방법이다.
string 문자열 실습
"좋아하는 동물을 알려주세요"로 질문하여 동물 이름을 animal이라는 변수에 저장하고,
이를 "내가 좋아하는 동물은"으로 출력하는 코드를 구현해보기
c언어 자체에는 get_string이라는 함수가 없어 해당 강의에서 제공하는 툴을 사용해서 구현한다.
그렇기 때문에 맨 위에 있는 #include <~>를 사용해서 컴파일할 수 있도록 지정해야 한다.
(위에 있는 include를 지우고 실행시키면 아래와 같은 에러가 발생한다. )
컴파일 방법
컴파일을 해줄 때에는 2가지 방법이 있다.
(컴파일 = 소스코드를 머신 코드로 번역!)
1번 clang -o (프로그램 이름)(소스코드)(데이터들을 가져올 링크)
=> 특정 소스코드를 머신코드로 변경.
이때 string.c에서 사용한 소스코드들 중 lcs50이라는 공간에서 따로 지정해 놓은 정보
(string.c에서 선언하지 않았던 함수들, 변수들을 사용하고 있기 때문에 -lcs50이 없으면 함수들을 못 읽는다.)
들을 사용해서 만들었으니 그곳에서 있는 소스코드들을 이 곳에 있는 string.c와 연결 시
2번 make(프로그램 이름)
=> 1번의 행동을 알아서 이해하고 컴파일해준다.
하 요즘 스프린트 때문에 하루하루 시간이 촉박하다ㅠㅠ
그래도 꾸준히 해야한다...화이 팅..
댓글