다시 오신 걸 환영해요
여긴 새로운 구역이에요
이 섹션에선 문자열을 다 다룰 거예요
네 제가 강의하는 동안 문자열이란 단어를 자주
써서 헷갈리셨을 거예요
문자열은 그냥 단어예요
따옴표 두 개로 동봉한 거예요
캐릭터 배열에서 문자열을 어떻게 저장하는지 알려드릴게요
네 지금까지 우리는 단일 글자에 익숙했습니다 char 데이터
타입 혹은 "cker" 데이터 타입이죠 어떻게 발음하든 간에요 그게 뭔지는 알지만 단어에 대해서는
잘 몰라요
네 char변수에 단일 문자를 할당할 수 있어요 char변수에 단일 문자를
할당할 수 있죠 한 쌍의 따옴표로 캐릭터가 봉인됩니다
이런 건 익숙해요
우리도
다 배웠어요 이 예제에선 작은따옴표 안에 +==를 넣었어요
여기서 중요한 건 작은따옴표예요
작은따옴표와 큰따옴표에는 차이가
있다는 것도 배웠고요
네 + 기호 변수를 넣고 큰 따옴표로 뭔가를 할당할
때 + 기호는 char 형식이라면 이 기능이 안 통해요 char
데이터 타입에 단일 문자만 할당할 수 있거든요
네 문자열 상수나 문자열 리터럴은 큰따옴표 쌍 사이의 문자나 기호의
시퀀스입니다
이제 새로운 연극을 위해 큰따옴표를 쓸 거예요
이 두 글자가 합쳐지면 컴파일러가 스트링으로
해석돼요
네 문자와 숫자가 같을 수도 있고 특별한 글자가 될
수도 있지만 보통은 단어를 만들어 내죠 텍스트라고 생각하시면
돼요
공간도 있어요
하지만 뭐든 문자열 리터럴이에요
네 printf 함수를 이용해 메시지를 디스플레이할
때마다 메시지를 문자열 상수로 정의했어요
네 printf를 기억하세요 첫 번째 논쟁이요 그 안에 텍스트를 넣고 형식
스펙타이어도 있어요
현악기 자음이에요
스트링라이터럴이라고도 하는데 같은 거예요
그래서 f를 출력합니다 이건 문자열이에요 그 사이에
있는 건 큰 따옴표는 문자열 상수죠 한두 줄에 놓을 수 있어요
print문도 할 수 있는 게 보이시죠 탈출
시퀀스 백슬래시 n이 있는 거요 이제 세 번째가 꽤 멋진데요 곧 설명해
드릴게요
네 중요한 것은 작은따옴표와 큰따옴표의
차이와 그 안에 있는 것의 차이입니다
큰따옴표를 사용하면 문자열이 생기죠
작은따옴표로 글자를 만들 수 있어요
상수에는 두 가지 유형이 있어요
네 네 이 세 번째 예제에서 printf는 4가 있고 백슬래시가
있고 작은따옴표가 있죠
하나의 따옴표를 출력으로 실제로 사용하고
싶다면 그걸 피해야 해요
스페셜차터에서는 백슬래시를 사용하세요
네 네 세 번째 예제에선 큰따옴표 4개를
인쇄할 거예요 큰따옴표를 하나 더 쓸 수 있어요
네 컴파일러는 명시적인 큰따옴표를 백슬래시 없이 문자열 편집기로 해석했어요
문자열 편집기로서요
네 큰따옴표를 쓸 때마다 문자열의 시작과 끝이죠 하지만
디스플레이하고 싶다면요? 그 앞에 백슬래시를
넣어야 합니다
컴파일러에게 이것이 문자열을 종료하는 것이 아니라는 것을 알려주죠
디스플레이하거나 그 캐릭터로
사용하고 싶은 거죠
네 또한 백슬래시를 하고 싶다면 탈출 시퀀스를
사용해야 합니다 백슬래시는 탈출 시퀀스니까요
네 백슬래시를 보면 백슬래시는 printf 함수에서
백슬래시를 보여주고 있죠
다른 데서 보이면 변수에 백슬래시를 할당하는
거죠 혹은 사용되는 대로요
하지만 백슬래시 자체와 다른 백슬래시가 백슬래시
스트링을 피하죠
그리고 백슬래시 Anda 스트링은 항상 탈출 시퀀스의
시작을 신호하죠
하나 자체로는 디스플레이 안 돼요
이 캐릭터들은 특별해요
큰따옴표요 큰따옴표일 땐 백슬래시를 볼 수 있어요 특수 문자를
벗어나기 위해서요 백슬래시 자체도요
메모리에서의 문자열은 이렇죠
메모리의 문자열은 여기서 bit로
나타나요
네 따라서 문자열이라 불리는 문자열이 있다면 메모리에 뭔가
있는 곳을 보게 될 거예요
네 그리고 마지막에 백슬래시 0이 보이시죠 나중에 얘기할
null 터미네이터예요
하지만 두 번째 줄은 메모리에 있는 모든 걸 볼 수 있죠
새 라인을 나타내는 백슬래시 N도 메모리에 있어요
인용문은 메모리에 저장할 거예요
하지만 백슬래시는 아니죠
백슬래시가 인용구를 축소하니까요
인용구를 벗어난 거죠
메모리에서는 이렇게 보이는군요
네 메모리의 문자열은 적어도 1바이트 이상 백슬래시가 들어가
있어요 0이죠 Null 문자열이에요
밑의 도식도 틀린 것 같네요
네 'You'가 안 보이죠? 따옴표 다음에요 큰따옴표요 본모습이
안 보여요 여기 어딘가에 있어야 해요
여기 어딘가에 있어요 그냥 보여주는 거죠 아래에 ASCI
값이 있어요 그래서 그냥 보여주거나 보여주지 않죠 오른쪽 바로
앞이에요
제가 얘기하고 싶은 게 이 null 캐릭터예요
코드 값 0이 있는 특별한 문자예요
네 각 스트링의 끝에 추가되어 컴파일러가 스트링의
끝과 실행 시간을 알 수 있습니다
네 네 이 캐릭터는 null 캐릭터로 알려져 있죠
그냥 0을 넣는 게 아니라 0을 백슬래시로 넣을 수 있어요
이 유리 슬라이드 끝에 그게 들어있었죠
실제로 어디에나 있을 수 있어요
그리고 메모리 어디에 있느냐에 따라 함수는 백슬래시 0이
나올 때까지 살펴봅니다 그리고 다른 문자열 함수를 사용한다면 디스플레이하거나
조작할 수도 있죠
그 무의 글자가 아주 중요해요
문자열은 항상 null 캐릭터로 종료되죠
문자열의 길이는 문자열의 문자수보다
1이 길죠
네 이건 아주 중요해요 문자 배열을 사용할 때
배열 크기를 지정할 때 배열 크기는 늘 한 글자 이상
저장해야 하거든요 이 null 캐릭터
때문에요
널에 대한 개념도 있는데 상세히 얘기하진
않았어요
네 포인터에 관해 얘기할 때 주로 실행되지만
null 문자와 null 키워드를 혼동하지 마세요
여러분이 사용할 수 있는 포함 헤더 중 하나에 null 키워드 하나가 있죠
이 기호는 기억 주소를 나타내는데 어떤
것과도 관련이 없어요
포인터를 사용할 때 사용하세요
Null 문자는 문자열 터미네이터예요
네 네 null 문자열과 null 키워드 사이의 차이점을 꼭 이해하셔야만
해요 Null 문자열과 null 키워드 사이의 차이점을요
네 문자열 끝에 백슬래시 0 문자를 명시적으로
추가하면 문자열 2개가 생성됩니다 문자 배열 정의할 때 어떻게
하는지 보여드릴게요
Null 터미네이터를 예로 들게요
네 여기 f를 프린트하고 캐릭터를 입력한 다음 백슬래시 0을
누르면 문자열이 종료되죠
네 어떻게 되느냐면 이 프로그램을 컴파일하고
실행하면 어떤 결과가 나올까요?
첫 줄은 글자가 되고 다음은 백슬래시 o가 되죠 A가 나올 거예요 끝납니다 문자열의 첫
부분만 표시될 거예요
추가출력량은 없습니다 프린트는 문자열의 끝이라고
생각하기 때문이죠
캐릭터를 잘 표현해줘요
네 네 출력은 처음 두 단어 다음에 끝납니다 null
문자에 도달하면 함수가 출력을 멈추거든요
네 문자열 끝에 두 번째 백슬래시 0이요 그래서 큰따옴표
바로 앞에 백슬래시 0이 안 보여도 문자열 .
바로 다음에요 여전히 하나 있죠 하지만 절대로 도달할
수 없죠
네 문자열과 printf의 끝에 암묵적인 null 터미네이터가 있는 거죠 그래서
어디서 끝날지 알아요
하나를 더 추가하면 그 첫 번째 것만 디스플레이되죠
네 캐릭터 시리즈에서 첫 번째 null 터미네이터는
항상 문자열의 끝을 표시합니다
이 null 문자를 이해하세요
네 문자열이 무엇인지에 대한 간략한 개요였습니다
문자열은 큰 따옴표에 있습니다
null 캐릭터도 설명하고 싶어요
네 다음 강의에선 문자열이 뭔지 이해하겠습니다
이걸 어떻게 다양하게 만들 수 있는지에 관해서요 문자열을
저장할 수 있는 변수입니다
고마워요