게임 개발/C#

이스케이프(escape) - 특수문자를 문자열로 바꾸는 법, 출력하는 법.

UniCoti(유니코티) 2024. 8. 1.
반응형

나를 포함한 많은 사람들이 아는 내용일 것 같다만, 용어의 이름은 몰랐기도 하고

항상 오류가 나는 부분만 이스케이프 했기에 IDE가 없어지면 못 고칠 것 같아서

좀 더 자세히 알아보고자 기록용으로 글을 남긴다.


1. 정의

가장 먼저 이스케이프의 정의는 특수 문자를 문자열로 표현하기 위해서 하는 기법이다.

만약에 "라는 문자를 출력하고 싶다고 가정하자.

Console.WriteLine(""");

만약 이스케이프를 모르는 사람이라면 저렇게 쓸 것이다.

저 코드는 보기에도 안 좋지만 사실 작동조차 되지 않는다. "라는 문자는 문자열을 표현하기 위한

기능이 있는 특별한 특수 문자라서 그냥 저렇게 쓰면 컴퓨터는 사용자의 의도를 정확히 파악할 수 없다.

실행 시 사진

실행하면 위와 같은 경고가 뜨며 빌드가 불가능하다고 말한다.

실제로 문제가 있는 코드이다.

 

Console.WriteLine("\"");

그래서 구분하기 위해서 위 코드와 같이 앞에다가 백슬래시(\)를 붙인다.

이걸 이스케이프라고 한다.

 

" 출력 모습

위의 코드와 같이 이스케이프를 통해주면 저렇게 "을 성공적으로 출력할 수 있는 모습을 보인다.


2. 이스케이프의 사용

사실 이걸 정리해 보려고 글을 적은 것과 같기도 하다.

정의를 정확히 알게 된 것도 이 글을 적은 이유 중 하나이지만, 결론적으로는

어떤 특수 문자들에 이스케이핑이 필요한지 정확히 알고 싶었다.

2-1. \  "   '

이 3가지의 특수 문자가 일반적으로 문자로 변환하기 위해 이스케이프가 필요하다.

\는 경로 지정을, "는 문자열 생성을, '도 문자열(char) 생성 기능을 맡는다.

따라서 각 특수 문자에 기능이 있기에 저 3가지 특수 문자에 예외 경우가 생긴다.

몰랐다면 기억해 두고, 알았다면 이 정도밖에 없다는 것에 실망했을 것이다.

 

2-2. 이스케이프 시퀀스

\n - 줄바꿈(newline)
\t - 수평 탭
\ - 백슬래시 문자 자체
' - 작은따옴표
" - 큰따옴표
\a - 경고음(벨 소리)
\b - 백스페이스
\f - 폼 피드
\r - 캐리지 리턴
\v - 수직 탭
\u{XXXX} - 유니코드 문자 삽입 (XXXX는 16진수 코드)

 

이스케이프 시퀀스라는 개념도 있다. 

이렇게 여러 가지가 있는데, 문자열 안에서 특별한 기능을 한다.

이것도 알아두면 좋을 것이다. 뭐 시험 볼 게 아니라면 그때그때 찾아봐도 좋을 것 같다.


여기까지 이스케이프에 대해서 자세히 알아봤다.

사실 이스케이프라는 행위는 할 줄 알지만 이스케이프라는 단어를 모르는

경우가 더 많을 것이라 생각한다. 나도 그래서 이걸 조금 공부해 본 것이다.

특수 문자도 \ " ' 밖에 없어서 괜히 공부했나 싶기도 하다.

그래도 어디 가서 누가 이스케이프라는 단어를 쓰면 알아들을 수 있을 것 같다.

 

이스케이프 시퀀스도 개념 자체는 정확히 알게 된 것 같다.

C언어에서 해본 경험이 C#에서도 도움이 되는 것 같다.

경험을 많이 쌓는 게 중요한 것 같다.


이상으로 도움이 되었길 바라며,

 

끝.

반응형

댓글

💲 추천 글