본문 바로가기

Programming/C

C 언어 | 문자열

✔ 학습목표

C로 문자열 형식을 가진 변수를 선언하고 출력하는 프로그램을 만들 수 있다.

 

프로그램 생성

간단하게 'hello world'만 출력했던 지난 강의와 달리, 직접 문자열을 받고 출력하는 프로그램을 생성했다. 예제(string.c)는 다음과 같다.

 

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

int main(void){
    string answer = get_string("what's your name?\n");
    printf("hello %s\n", answer);
}

 

1) 변수 설정

사용자의 이름을 받아서 인사를 출력하는 프로그램이다. 변수명은 answer로 정했다. C는 오래된 언어이기 때문에 변수가 저장하는 데이터의 종류를 아주 정확하게 명시해주어야 한다. 본 예제에서는 문자열을 저장하고 싶기 때문에 string이라 명시해주었다. 이때 string과 같은 역할형식 지정자라고 한다.

 

2) 반환 데이터 저장

프로그래밍에서 '='는 '같다'가 아닌 '오른쪽에 있는 것을 왼쪽에 지정한다'라는 의미를 가진다. 이를 할당 연산자라고 한다. get_string 함수가 사용자의 이름을 반환하면 그 이름을 answer라는 변수에 저장하는 것이다. 참고로 'cs50.h'는 string이라는 문자열 형식과 get_string이라는 함수가 포함된 헤더 파일이다.

 

3) 출력

출력에서는 printf함수를 사용한다. 프로그램에서는 answer이라는 변수에 들어있는 데이터, 즉 받아온 이름을 출력해야 한다. 인자를 받아올 때는 %를 사용하며, 문자열(string)을 받기 때문에 s를 붙여 '%s'와 같이 사용한다.

 

4) 컴파일

프롬프트 창에 clang -0 string string.c -lcs50을 입력해 컴파일한다. 여기서 -o string은 string.c를 string.out이라는 머신 코드로 저장하도록 하는 명령어다(clang string.c 와 달리 원하는 이름으로 저장 가능). -lcs50에서 -l은 'link'라는 의미를 가지며, 컴파일 시 cs50이라는 파일을 연결하는 역할을 한다.

 

다소 복잡한 이런 과정 대신, make string을 사용하면 간단하게 컴파일을 할 수도 있다.

 

 

생각해보기

"좋아하는 동물을 알려주세요"로 질문하여 동물 이름을 animal이라는 변수에 저장하고, 이를 "내가 좋아하는 동물은"으로 출력해주는 코드를 작성하기

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

int main(void)
{
    string answer = get_string("좋아하는 동물을 알려주세요\n");
    printf("내가 좋아하는 동물은 %s\n", answer);
}

 

이 글은 네이버 부스트 코스 David J. Malan(데이비드 J. 말란) 교수님의 모두를 위한 컴퓨터 과학(CS50 2019) 강의를 수강하고 작성한 글입니다. 본 강좌 내 실습에서는 CS50 Sandbox를 사용합니다.

 

 

모두를 위한 컴퓨터 과학 (CS50 2019)

부스트코스 무료 강의

www.boostcourse.org

'Programming > C' 카테고리의 다른 글

C 언어 | 배열  (0) 2021.02.02
C 언어 | 사용자 정의 함수와 중첩 루프  (0) 2021.01.31
C 언어 | 자료형, 형식 지정자, 연산자  (0) 2021.01.30
C 언어 | 조건문과 루프  (0) 2021.01.30
C 언어 | C 기초  (0) 2021.01.30