의견.png

"문자 (프로그래밍)"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
58번째 줄: 58번째 줄:
 
*{} : 중괄호(Brace)
 
*{} : 중괄호(Brace)
 
*[] : 대괄호(Bracket)
 
*[] : 대괄호(Bracket)
*<> : 꺽쇠 괄호(Angle Bracket)등이 특수 문자다.<ref> inyong_pang, 〈[https://velog.io/@inyong_pang/Programming-%ED%8A%B9%EC%88%98-%EB%AC%B8%EC%9E%90-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC [Programming] 특수 문자 용어 정리]〉, 《벨로그》, 2020-08-03 </ref>
+
*<> : 꺽쇠 괄호(Angle Bracket)등이 특수 문자다.<ref> inyong_pang, 〈[https://velog.io/@inyong_pang/Programming-%ED%8A%B9%EC%88%98-%EB%AC%B8%EC%9E%90-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC (Programming) 특수 문자 용어 정리]〉, 《벨로그》, 2020-08-03 </ref>
 +
 
 +
===집합===
 +
비주얼 스튜디오(Visual Studio)에서는 프로젝트 속성 메뉴에 문자 집합이란 항목이 있다.옵션은 크게 세가지 설정 안함(Not Set), [[멀티바이트]] 문자 집합 사용(Use Multi-Byte Character Set), [[유니코드]] 문자 집합 사용(Use Unicode Character Set)가 있다.컴퓨터에서는 데이터를 처리하기 위해 2진법을 쓴다. 즉 컴퓨터에서는 숫자를 처리할 수는 있지만 문자는 기본적으로 처리가 불가능 해서 문자를 처리하기 위해 문자 집합(Character Set) 이라는 것을 사용한다. 이 중에서 대표 코드는 [[아스키 코드]]이고 아스키 코드는 이름 그대로 미국 표준 문자 집합이기 때문에 해당 문자 집합에는 전 세계 언어를 표현하기 위한 약속이 되어 있지 않다. 그리하여 만들어진 문자 집합이 바로 유니코드(UNICODE)이다. 유니코드는 전 세계 모든 문자를 컴퓨터에서 일관되게 표현하고 처리하기 위한 국제 표준이다.
 +
*아스키 코드 : 문자 하나를 표현하기 위해 메모리 1byte를 필요한다.
 +
*유니코드 : 문자 하나를 표현하기 위해 최소 2byte를 필요한다.
 +
이러한 문자 집합들은 크게 3가지로 나눈다.<ref name="집합"> jrich, 〈[https://jrich.tistory.com/1 Visual Studio 문자 집합 정리]〉, 《티스토리》, 2015-03-04 </ref>
 +
====SBCS====
 +
싱글 바이트 케릭터 집합(SBCS : Single Byte Character Set) : 문자 하나를 표현 하는데 있어 1바이트를 사용하는 방식이고 대표적인 문자 집합은 아스키코드이다.<ref name="집합"></ref>
 +
 
 +
====MBCS====
 +
멀티 바이트 케릭터 집합(MBCS : Multi Byte Character Set) : 문자 하나를 표현 하는데 있어 다양한 바이트 수를 사용하는 방식이고 대표적인 문자 집합은 유니코드이다.<ref name="집합"></ref>
 +
 
 +
====WBCS====
 +
측면 바이트 케릭터 집합(WBCS : Wide Byte Character Set) : 문자 하나를 표현 하는데 있어 2바이트를 사용하는 방식이고 아스키코드와 유니코드를 혼용하여 사용할 수 있는 방식인 거다.<ref name="집합"></ref>
 +
 
 +
 
 +
==구분==
 +
어떤 문자 인지 구분하는 함수가 많이 쓰이고 있다.
 +
*int isalpha(int c) : 주어진 문자가 알파벳 인지 검사한다.(A-Z, a-z)
 +
*int isalnum(int c) : 주어진 문자가 알파벳 또는 숫자인지 검사한다.(A-Z, a-z. 0-9)
 +
*int isdigit(int c) : 주어진 문자가 숫자인지 검사한다.(0-9)
 +
*int isxdigit(int c) : 주어진 문자가 16 진수인지를 검사한다.(0-9, a-f, A-F)
 +
*int iscntrl(int c) : 제어(control)문자인지를 검사한다.
 +
*int isspace(int c) : FF('\f'), NL('\n'), CR('\r'), HT('\t'), VT('\v'), 공백문자(' ')등을 검사한다.
 +
*int ispunct(int c) : 알파벳문자 혹은 공백문자가 아닌 출력가능한 문자인지 확인한다.
 +
*int isgraph(int c) : 공백문자를 제외한 출력가능 문자인지 검사한다.
 +
*int isprint(int c) : 공백문자를 포함한 출력가능한 문자인지 검사한다.
 +
*int islower(int c) : 소문자인지 검사한다. a-z
 +
*int isupper(int c) : 대문자인지 검사한다. A-Z
 +
*int tolower(int c) : 입력된 문자를 대문자로 변경한다.
 +
*int toupper(int c) : 입력된 문자를 소문자로 변경한다.
 +
단.같은 종류일 경우 0이 아닌 값을 같은 종류의 문자가 아닐 경우 0을 반환한다.<ref> 공간사랑, 〈[https://uple.net/222 문자의 종류를 알아내는 C 언어 함수들]〉, 《업넷》, 2011-03-09 </ref>
  
 
==참고자료==
 
==참고자료==
64번째 줄: 96번째 줄:
 
* 〈[https://terms.naver.com/entry.naver?docId=3607517&cid=58598&categoryId=59316 프로그래밍 언어]〉, 《네이버 지식백과》
 
* 〈[https://terms.naver.com/entry.naver?docId=3607517&cid=58598&categoryId=59316 프로그래밍 언어]〉, 《네이버 지식백과》
 
* 〈[http://www.ktword.co.kr/test/view/view.php?m_temp1=5946 null, NULL, Null  널 문자]〉, 《정보통신기술용어해설》
 
* 〈[http://www.ktword.co.kr/test/view/view.php?m_temp1=5946 null, NULL, Null  널 문자]〉, 《정보통신기술용어해설》
* inyong_pang, 〈[https://velog.io/@inyong_pang/Programming-%ED%8A%B9%EC%88%98-%EB%AC%B8%EC%9E%90-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC [Programming] 특수 문자 용어 정리]〉, 《벨로그》, 2020-08-03
+
* inyong_pang, 〈[https://velog.io/@inyong_pang/Programming-%ED%8A%B9%EC%88%98-%EB%AC%B8%EC%9E%90-%EC%9A%A9%EC%96%B4-%EC%A0%95%EB%A6%AC (Programming) 특수 문자 용어 정리]〉, 《벨로그》, 2020-08-03
 
+
* 공간사랑, 〈[https://uple.net/222 문자의 종류를 알아내는 C 언어 함수들]〉, 《업넷》, 2011-03-09
 +
* jrich, 〈[https://jrich.tistory.com/1 Visual Studio 문자 집합 정리]〉, 《티스토리》, 2015-03-04
  
 
==같이보기==
 
==같이보기==

2021년 8월 18일 (수) 17:24 판

문자(文字)는 컴퓨터와 기계 기반 전기통신 용어로, 자연어 기록 형태의 알파벳이나 음절 문자와 같은 상징 따위와 일치하는 정보의 단위다.[1]

개요

컴퓨터에게 명령을 내릴 수 있도록 도와주는 도구를 말한다.[2]

등장배경

수학에서 등장하였으며 쿠르트 괴델은 불완전성 정리를 증명하는 과정중에 알고리즘을 추상화시킨 원시 재귀 함수(primitive recursive function) 개념을 만들고, 이를 이용하여 증명에 성공하였는데, 수학적으로 본다면 이것이 최초의 프로그래밍 언어라 볼 수 있다.(굳이 따지자면 함수형 언어라 할 수 있다.) 그리고, 몇년 후에 컴퓨터의 아버지라 불리는 튜링은 불완전성 정리를 보고 자신의 방식도 될것같다고 생각하며 연구를 하는데, 여기서 이 원시재귀함수와 동치인 튜링머신을 발표하고 이 튜링머신을 이용하여 불완전성 정리를 다시 한 번 증명해보인다. 이는 어떤 체계를 통해서 이 체계의 모순성을 증명할 수 있는 방법은 없다와 동치이다.

  • 계산가능성이론(Computability Theory)이라는 수학의 분야가 생기면서 기존의 원시재귀함수를 확장한 람다 미적분(Lambda calculus)과 무제한 등록기(Unlimited register machine : URM), 프로그래밍(While-programming), SKI 등등 알고리즘을 표현하기 위한 여러가지 체계들이 등장한다.[3]

종류

다음은 프로그래밍 문자 종류이다.

변환

  • %d : 10진수로 출력하는 정수형이다.
  • %f : 실수형이다.
  • %e : 지수형이다.
  • %o : 8진수로 출력한다.
  • %x : 16진수로 출력한다.
  • %u : 부호없는 10진수로 출력한다.
  • %g : 실수형으로 자동 출력한다.
  • %p : 포인터의 주소를 출력한다.
  • %c : 하나의 문자로 출력 문자형이다.
  • %s : 문자열을 출력한다.[4]

아무것도 없음을 값으로 표현한 문자(빈 값)를 표현한 것이다.[5]

프로그래밍

프로그램(함수 등)이 자료 검색 후 해당 값을 못 찾았을 때, 메모리 할당 실패 때 등의 경우에, 넘겨주는(반환)값을 말한다.

  • 유의점 : 널 문자(null)는, 공백 문자 ""(empty) 또는 " "(space, 아즈키(ASCII) 32)와는 다르게 취급한다.
  • `==`과 같은 비교 연산 때, 널(null)을 공백 ""(empty)과 같은 것으로 간주하기도 한다.[5]

특수

다음은 특수기호 : 한글(영단어)을 보여주는 거다.(한글뜻이 없는것은 발음을 붙였다.)

  • ' : 그레이브(Grave)
  • ~ : 물결표시(Tilde)
  • ! : 느낌표(Exclamation)표시(Mark)
  • @ : 골뱅이(At)
    1.  : 샾, 우물정(Number , Sharp)
  • $ : 달러(Dollar)
  • % : 퍼센트(Percnet)
  • ^ : 캐럿(Caret)
  • & : 엠퍼센드(Ampersand)
  • * : 별표(Asterisk)
  • - : 마이너스(Hyphen, Dash)
  • _ : 밑줄(Underscore, Low dash)
  • = : 이꼬르(Equals)
  • " : 큰 따옴표(Quotation)
  • ' : 작은 따옴표(Apostrophe)
     : 콜론(Colon)
     
    세미콜론(Semicolon)
  • . : 점, 마침표(Period, Dot)
  • ? : 물음표(Question)
  • / : 슬래쉬(Slash)
  • 수직바(Vertical bar)
  • \ : 백슬래쉬(Backslash)
  • () : 소괄호(Parenthesis)
  • {} : 중괄호(Brace)
  • [] : 대괄호(Bracket)
  • <> : 꺽쇠 괄호(Angle Bracket)등이 특수 문자다.[6]

집합

비주얼 스튜디오(Visual Studio)에서는 프로젝트 속성 메뉴에 문자 집합이란 항목이 있다.옵션은 크게 세가지 설정 안함(Not Set), 멀티바이트 문자 집합 사용(Use Multi-Byte Character Set), 유니코드 문자 집합 사용(Use Unicode Character Set)가 있다.컴퓨터에서는 데이터를 처리하기 위해 2진법을 쓴다. 즉 컴퓨터에서는 숫자를 처리할 수는 있지만 문자는 기본적으로 처리가 불가능 해서 문자를 처리하기 위해 문자 집합(Character Set) 이라는 것을 사용한다. 이 중에서 대표 코드는 아스키 코드이고 아스키 코드는 이름 그대로 미국 표준 문자 집합이기 때문에 해당 문자 집합에는 전 세계 언어를 표현하기 위한 약속이 되어 있지 않다. 그리하여 만들어진 문자 집합이 바로 유니코드(UNICODE)이다. 유니코드는 전 세계 모든 문자를 컴퓨터에서 일관되게 표현하고 처리하기 위한 국제 표준이다.

  • 아스키 코드 : 문자 하나를 표현하기 위해 메모리 1byte를 필요한다.
  • 유니코드 : 문자 하나를 표현하기 위해 최소 2byte를 필요한다.

이러한 문자 집합들은 크게 3가지로 나눈다.[7]

SBCS

싱글 바이트 케릭터 집합(SBCS : Single Byte Character Set) : 문자 하나를 표현 하는데 있어 1바이트를 사용하는 방식이고 대표적인 문자 집합은 아스키코드이다.[7]

MBCS

멀티 바이트 케릭터 집합(MBCS : Multi Byte Character Set) : 문자 하나를 표현 하는데 있어 다양한 바이트 수를 사용하는 방식이고 대표적인 문자 집합은 유니코드이다.[7]

WBCS

측면 바이트 케릭터 집합(WBCS : Wide Byte Character Set) : 문자 하나를 표현 하는데 있어 2바이트를 사용하는 방식이고 아스키코드와 유니코드를 혼용하여 사용할 수 있는 방식인 거다.[7]


구분

어떤 문자 인지 구분하는 함수가 많이 쓰이고 있다.

  • int isalpha(int c) : 주어진 문자가 알파벳 인지 검사한다.(A-Z, a-z)
  • int isalnum(int c) : 주어진 문자가 알파벳 또는 숫자인지 검사한다.(A-Z, a-z. 0-9)
  • int isdigit(int c) : 주어진 문자가 숫자인지 검사한다.(0-9)
  • int isxdigit(int c) : 주어진 문자가 16 진수인지를 검사한다.(0-9, a-f, A-F)
  • int iscntrl(int c) : 제어(control)문자인지를 검사한다.
  • int isspace(int c) : FF('\f'), NL('\n'), CR('\r'), HT('\t'), VT('\v'), 공백문자(' ')등을 검사한다.
  • int ispunct(int c) : 알파벳문자 혹은 공백문자가 아닌 출력가능한 문자인지 확인한다.
  • int isgraph(int c) : 공백문자를 제외한 출력가능 문자인지 검사한다.
  • int isprint(int c) : 공백문자를 포함한 출력가능한 문자인지 검사한다.
  • int islower(int c) : 소문자인지 검사한다. a-z
  • int isupper(int c) : 대문자인지 검사한다. A-Z
  • int tolower(int c) : 입력된 문자를 대문자로 변경한다.
  • int toupper(int c) : 입력된 문자를 소문자로 변경한다.

단.같은 종류일 경우 0이 아닌 값을 같은 종류의 문자가 아닐 경우 0을 반환한다.[8]

참고자료

같이보기


  의견.png 이 문자 (프로그래밍) 문서는 보안에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.  

  1. 문자 (컴퓨팅)〉, 《위키백과》
  2. 프로그래밍 언어〉, 《네이버 지식백과》
  3. 프로그래밍 언어〉, 《나무위키》
  4. 프로그래밍 블로그, 〈C 언어 변환문자 의미 자료형 (%d,%f,%e,%o,%x,%u,%g,%p,%c,%s)〉, 《티스토리》, 2008-05-21
  5. 5.0 5.1 null, NULL, Null 널 문자〉, 《정보통신기술용어해설》
  6. inyong_pang, 〈(Programming) 특수 문자 용어 정리〉, 《벨로그》, 2020-08-03
  7. 7.0 7.1 7.2 7.3 jrich, 〈Visual Studio 문자 집합 정리〉, 《티스토리》, 2015-03-04
  8. 공간사랑, 〈문자의 종류를 알아내는 C 언어 함수들〉, 《업넷》, 2011-03-09