문자열 11

[삽잡이::C#]문자열

string 즉, 문자열은 C#에서 변경되지 않습니다.그리고 참조 형식입니다.하지만, 동작은 값 형식과 똑같습니다.왜냐하면, 독립성을 보장하기 때문입니다. 많은 객체들이 한 참조를 가진다고 해도,변경이 가능하지 않다면 독립적인 객체입니다. 문자열이 절대로 바뀌지 않는다면,일부를 공유하는 독립적인 객체가 됩니다.따라서, 외부에서 공유를 하더라도 바뀌지 않습니다. 정리하자면,string은 참조형식이기는 하나, 값 형식과 똑같이 동작합니다.문자열을 값처럼 넘겨라? 틀린말이 아닙니다.

#012_닷넷(.NET)_.Net Framework 기본 - 문자열(2) & 가비지 컬렉터

안녕하세요 삽잡이입니다.이번 시간에는 문자열에 대해서 조금 더 알아보는 시간을 가져보려고합니다. 문자열에서 주의해야할 점은 바로 불변성입니다. 문자열에 기본적인 연산자는 사실 중복정의 되있습니다.즉, 대괄호 중복 정의가 이미 되있다는 것입니다. 하지만,C#에서는 읽기만 가능하고 쓰기는 불가능합니다. 원본 문자열은 바뀌지 않습니다. 절대로 말입니다...문자열을 변환하는 함수를 통해 변환이 가능하긴 합니다... 그런데 변환을 한다고 원본이 변환이 되는 것이 아닙니다.변환이 된 복사본이 생성될 뿐이지요...만약 원본을 바꾸고 싶다면 변환한 복사본을 다시 넣는 방법이 있습니다. 닷넷은 메모리 영역을 딱! 두 가지로 봅니다.바로 Stack과 Heap입니다. 참조자는 모두 stack 영역에 만들어집니다.그리고 이 ..

#008_닷넷(.NET)_.Net Framework 기본 - 문자열과 내장 타입간 변환

안녕하세요 삽잡이입니다. 이번시간에는 간략하게 문자열과 데이터 타입간에 변환하는 과정에 대해서 알아보려고합니다. C#의 모든 데이터는 객체입니다. 위의 예제코드를 살펴보자면,10은 단지 값으로 표현되는 int형 객체임을 나타내는 것입니다.그리고 이 것은 우리가 인식하지 않고 사용해도 됩니다.왜냐하면, 기존에 우리가 사용하던 방식과 완벽하게 동일한 사용법을 제공해주기 때문입니다. 아무튼... C#에서는 모든 기본 데이터를 객체로 나타냄을 기억하시길 바랍니다. 문자를 정수로는 변환할 수 있으나,정수를 문자로 변환을 할 수 는 없습니다... C#에서는 문자나 정수나 모두 전혀 다른 형식입니다.단지 이 형식들을 서로간에 변환을 해주는 것일 뿐입니다.기존의 C/C++은 정수나 문자나 같이 취급을 했는데C#에서는 ..

#005_닷넷(.NET)_.Net Framework 기본 - 문자열 (1)

안녕하세요 삽잡이입니다. 이번 시간에는 가볍게 문자열에 대해서 알아보려고합니다.물론, 그 외에 기초적인 부분들도 상황에 맞게 알아보겠습니다. 시작하겠습니다.. 푸하하 C#에서는 Namespace 다음 .(점)으로 구분하고, 타입을 쓰고 또 .(점)으로 구분하고 접근하여 사용합니다. 예를 들어 간단한 정적 출력 메소드를 확인해보도록 하겠습니다. WriteLine 메소드는 문자열을 출력하는 메소드입니다.이와 반대로 ReadLine 메소드가 있지요...기존 C/C++ 에서 알아온 함수들과 별 차이가 없습니다. Console이라는 타입에서는 모두 '문자열'을 사용합니다.사실 C/C++도 마찬가지였습니다.원래, 입력을 받으면 문자열로 우선 받고 %d, %f등에 의해서 변환을 한 것이었습니다.참고로 C#에서는 Ja..

[삽잡이] 유니코드와 멀티바이트코드

안녕하세요 삽잡이입니다. 이번 시간에는 유니코드와 멀티바이트에 대해서 알아보려고합니다. 우선 멀티바이트 코드는, MBCS 즉, 문자 집합을 여러개의 바이트를 써서 표현합니다.유니코드와 멀티바이트는 표현하는 것은 같습니다.하지만, MBCS의 경우 MS에서 만든 것 즉, 표준이 아닙니다.결국 둘의 차이는 표준이냐 표준이 아니냐의 차이이군요... 뭔말이냐면 MBCS 방식은 표준이 아니기 때문에MS계열의 OS가 아니라면 모른다 이겁니다... 인식을 못한다 이거죠... 어찌됬든간에... 지난 시간의 내용을 잠시 복습해보자면...유니코드는 '문자에 대한 정의 숫자'일 뿐입니다. 그 숫자를 어떠한 형태로 정의할 것인지가 인코딩이구요...인코딩 방식에는 여러가지가 있는데 표준이 2바이트로 표현하는 방식이라는 것...그..

[삽잡이] 유니코드(Unicode)

안녕하세요 삽잡이입니다. 이번시간에는 문자 코드에 대해서 알아보려고 합니다. 옛날부터 문자(문자열, 문자 코드)에 대한 많은 코드들이 존재했습니다.모든 컴퓨터는 0과 1의 바이너리 코드를 사용할 수 있는데,따라서 사진, 동영상들은 모두 숫자로 표현되어야 합니다. 이러한 표현을 위해 문자코드가 필요한 것입니다. A라는 문자를 어떤 숫자와 매핑 시킬 것이냐, 즉, 정의할것이냐를 문자코드라고 할 수 있는데요,여기에서 컴퓨터 용어로 사용되는 코드란, '해석해야하는', '해석되어져야하는'으로 통합니다. 어찌됬건, 문자 코드는 여러가지가 있었는데, 지금은 하나로 통합니다.전 세계적으로 표준화 된 문자코드의 집합,전 세계적으로 정의된 Uniqe한 문자 정의 코드...우리는 이를 '유니코드'라고 부릅니다. (자세한 내..

곱씹어보자 C!_#031_삽잡이의 파일 입출력을 사용한 저장 및 복원 예제

안녕하세요 삽잡이입니다.. 이번 글은 파일 입출력에 관한 실습 예제 입니다. 역시 코딩은 눈으로만 보는 것이 아니라 직접해봐야한다는... 인터넷의 많은 도움과 짜집기의 힘을 얻어 만든 이 코드는 문자열 입력, 출력, 검색, 삭제, 저장, 복원의 기능을 가지고 있습니다... 다시한번 인터넷님에게 감사드리며... 많은 정보들을 남겨주신 모든 분들에게 감사드리며... 푸하하... 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798..

곱씹어보자 C!_#023_삽잡이의 두서없이 막말하는 지금까지 응용 예제

안녕하세요 삽잡이 입니다!오늘은 지금까지 배워온 모든 것들을 응요해서예제를 만들어봤습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132#pragma warning(disable:4996)#include #include #include #in..

곱씹어보자 C!_#014_ 삽잡이의 두서없이 막하는 예제 코딩

지금까지 주절주절 거리며 떠들었던 것들에 대한 예시들을 살펴보도록 하겠습니다.예제에 대한 설명들은 다 안하고... 그냥 제가 살펴보고 싶은 것만... 하하...쉬운 코드들이라... 그냥 보시는 데에도 문제 없으실 것입니다. 말씀은 안드렸지만, 이번 '곱씹어보자 C!' 기획은...C언어를 아시는 상태에서 한번 훑어보며 기억을 다시한번 잡아보자 하는 마음에 올리게 되기에...아무래도 저의 화려한 삽잡이의 캐릭터와 (ㅋㅋㅋㅋ) 그림들이 없어 밋밋한 면이 있죠... 아무튼... 그 전에 우선 하나 확실하게 다시 알아보고 갑시다. 지난 번에 설명한 것인데요...이번에 올릴 예시들을 이해하는데 도움이 많이 될것 같아서요! 다른 함수로 요청을 할 때에 매개변수를 보낸다고 했었습니다.그런데, 그 매개변수에는 사용하는 ..

곱씹어보자 C!_#011_ 삽잡이의 두서없이 막말하는 문자열(2)

으악 머리가 터질거 같네요...이런 두근 거림... 머리가 터질거 같은데 두근거림... 언어를 하나 완벽하게 습득한다는 것은 무슨 느낌일까요...이렇게 포스팅도 하면서 그럴 날이 찾아온다면 좋겠네요...그러기 위한 과정이라 생각하고!힘이 남아도는 삽잡이는 달리겠습니다! 쉬지않는 오토 마우스~! #010 문자열(1) 에서는 배열과 포인터를 사용하며 주소의 연산을 가지고 놀았습니다...놀았을까요, 끌려 다녔을까요... 하하... 1234 int* p = arr;&arr[0] = p; cs 이와 같이 할 수 있다는 설명으로 끝을 냈던 것 같습니다...아무튼... 배열은 변할 수 없는 상수주소이지만 포인터는 바뀔 수 있다는 점~ 문자의 시작 주소만 알면 모든 찾을 수 있다고 했습니다.맨 뒤에 '\0'이 있고 항..