나를 포함한 많은 사람들이 아는 내용일 것 같다만, 용어의 이름은 몰랐기도 하고
항상 오류가 나는 부분만 이스케이프 했기에 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#에서도 도움이 되는 것 같다.
경험을 많이 쌓는 게 중요한 것 같다.
이상으로 도움이 되었길 바라며,
끝.
'게임 개발 > C#' 카테고리의 다른 글
C# Interface의 기능, 사용법 (0) | 2024.11.24 |
---|---|
C# 에서 문자열을 반복하는 가장 간단한 방법 - new string (0) | 2024.11.03 |
C#에서 ?와 ??의 의미, null을 판단하는 방법(null 조건부 연산자, null 병합 연산자) (2) | 2024.07.30 |
C# - Possible null reference argument for parameter 's' in 'int int.Parse(string s)'. 오류 해결법 (CS8600, CS8604 (0) | 2024.07.29 |
dynamic programming(dp)와 메모이제이션(memoization) - C# (0) | 2024.07.10 |
댓글