본문 바로가기
CS 기초/CS50 2019

[CS50 2019] (C언어) 문자열

by Dev.Andy 2023. 5. 27.

머리말

참고 자료

 

get_string과 string

get_string 함수

  • 스크래치의 say의 기능은 c언어의 get_string과 유사하다

string

  • 문자열(string)은 프로그래밍에서 단어나 구절, 문장을 말하는데 숫자와는 다른 형태를 갖고 있다

 

값 입력

타입 명시

  • c언어는 변수 이름 앞에 저장하고 하는 값의 종류가 적혀야 한다.
string answer = get_string("What's your name?\\n");

= 연산자

  • 수학에서 =는 동등하다는 뜻이지만, 프로그래밍에서는 우항을 좌항에 대입(할당)하는 의미이다.

 

값 출력

printf 함수와 형식 지정 문자(%)

  • 출력 함수에서 원하는 변수를 출력하려면 형식 지정 문자(%)와 그 값의 종류(문자열의 경우 s)를 적는다.
  • 그리고 쉼표(,)를 활용하여 그 형식에 해당하는 변수를 적는다.
string answer = get_string("What's your name?\\n");
printf("hello, %s\\n", answer);

 

질문과 답변

문자열이란 무엇인가?

  • 쌍따옴표("")에 들어간 0개 이상의 문자 배열

줄바꿈 문자(\n)가 문자열 밖에 들어간다면?

  • 직접 해 보는 습관이 중요하다
  • 에러가 생기는데, 어떠한 점이 잘못 되었는지 컴파일러가 알려준다.

string은 c언어의 타입이 아니다(!)

  • 이해를 돕기 위해 교수님이 string을 타입으로 작성했을 뿐 c언어에서는 string이라는 타입이 존재하지 않는다.
  • 아마 당장 이해하기에는 한번에 많은 정보가 들어 오니 교수님께서 학생들을 배려한 것 같다.
  • get_string 또한 정식 함수가 아닌데 string과 함께 이러한 것을 지원하기 위해서는 cs50.h를 불러와야 한다.

 

꼬리말

질문과 답변에 익숙한 미국의 대학

  • 일반화하기는 어렵지만, 개인적인 경험으로 내가 겪어온 한국의 학교에서는 마지막에 질문 있으세요?에 침묵으로 일관하기 마련이다.
  • 적극적인 질문과 답변이 오가는 미국 대학생의 모습을 보면서 한국에서도 저런 소통이 오가는 수업이 되었으면 하는 바람이 들었다.

댓글