본문 바로가기
아두이노

아두이노 문자와 문자열-#1

by 오징어땅콩2 2020. 6. 20.
반응형

문자와 문자열에 관한 이야기다.

 

어느정도 경험이 있는 사람들은 이것, 굳이 라고 이야기 할 수 있는 주제이다.

사실 별것 없다.

그래도 처보에게는 아직 경험이 없는 이들에게는 어려운 주제이기도 하다.

말그대로 받아 드리면 쉬운데 어렵게 생각하고 하는 방법을 몰라서 그렇다.

 

언어에서는 크게 두가지 자료형이 있다.

자료형과 배열이다.

처음에 본인이 공부 할때도 자료형과 배열은 그냥 자료형에 대한 집합개념으로 생각했다.

그런데 배열로 그냥 다른 자료형으로 생각한다. 

물론 본인이 어떻게 생각해도 상관 없다. 그냥 개념만 이해하면 되기때문...

항상 이야기 하지만 하는 방법을 배울라고 하지 말기 바란다.

그 개념을 이해해야 한다.

하는 방법은 아주 1차원적이다.

예를 들어 C언어에서 하는 방법을 배웠다. 

그래도 자바나 파이썬에 가면 또 다른 방법을 배워야 한다.

그래도 개념은 한번 배워두면 동일 하다.

 

일단 C언어 기준으로 설명하자.

문자는 영문자 한글자를 기준으로 한다. 예를 들어 a 라고 하자

그러면 abcd는 문자가 아니다 문자열이다. abcd를 문자라고 칭하면 안된다. 

문자의 자료형은 char a;이다. 그리고 문자열의 자료형은 char a[]; 배열이다.

아주 쉽다. 이것을 구분 못하면 더이상 나아가지를 못한다.

그러면 C언어에서 C++로 확장하자.

표준 C++ 에서는 string이 문자, 문자열를 모두 지칭한다. 물론 C++에서 char나 char 배열이 안되는것은 아니다.

그러면 아두이노에서는 뭘까 String 다. 비슷하지만 다르다. 대문자 S로 시작한다. 

아두이도가 C++은 맞지만 아두이노가 C++표준을 따라간것은 아니다.

그 이유는 모르겠지만, 아무래도 마이크로소프트사가 장악하고 있는 C++ 표준협회에 대한 반감일수도 있고 이탈리아 특유의 뭐일수도 있다.

이탈리아 출장가서 신기한것을 보기는 했다. 

그쪽 호텔에서는 우리의 1층이 0층으로 표기 되어 있었다. 물론 우리의 2층은 1층으로 표기 되어 있었다,

곰곰히 생각하면 지상을 1층으로 해야 할 이유는 없었다.

참고로 마이크로소프트 visual C++에서는 CString가 문자열이다.

하고 싶은말은 표준은 표준이고 컴파일러 회사에 따라 달라질수 있다는것이다.

좀 더 나아가자 

char가 문자 일까? 기초과정에서는 정답이다.

좀 더 응용에 들어가면 아니다. 한글이나 기타 언어는 1바이트로 문자를 표현 할 수가 없다.

그래서 언어코드가 도입되고 2바이트, 3바이트, 4바이트가 문자를  지칭 할 수도 있다.

이것은 응용이기 때문에 지금 다루지는 않겠다.

다음에 공부를 더하던지 아두이노 한글 출력부분에서 하자.

머리 회전이 빠른 사람들은 알수 있겠지만, 아두이노에서 문자코드의 개념을 이해 못하면 한글이나 기타 다른 언어는 표현 못한다.

결론은 기본과정에서는 영문자만 출력 할 수 있다는것이다.

 

댓글