Q&A

  • String 을 Char or PChar 로 바꾸려면...??
어떻게 해야하나요...

그리고 Char 과 PChar 은 어떤차이가 있나요??

1  COMMENTS
  • Profile
    cyberia 2001.02.25 09:22
    우선 Char는 말그대로 문자형 타입의 예약어입니다. 또한 PChar는

    Null로 끝나는 문자열을 뜻합니다. 일반적으로 C언어의 경우,

    문자열의 전체 길이를 알지 못하기 때문에 그 끝을 알려주기 위해서

    문자열의 가장 마지막에 NULL을 넣어줍니다. 하지만, 델파이의 경우,

    string 타입을 사용하면 문자열의 가장 앞에 문자열의 길이를 담고 있습니다.

    따라서 문자열의 전체 길이를 알 수 있죠. 하지만, C언어와 같은 NULL Terminated

    문자열을 지원하기 위해서 PChar 타입을 제공하고 있습니다.



    따라서, 문자열 타입을 문자에 집어넣는 것은 기본적으로 그 타입이 서로

    틀리므로 컴파일 에러가 발생합니다. 하지만, string 타입을 PChar타입으로

    바꾸는 것은 간단한 타입 캐스팅만으로도 가능합니다.



    예)

    var

    S: string;

    P: PChar;

    begin

    S := 'A String';

    P := PChar(S); <----- type casting

    end;



    끝으로 string을 Char에 담고싶다면, S[1]과 같은 배열 인덱스를 사용해서

    문자열의 한 글자를 Char에 담을 수는 있습니다.



    예)

    var

    S: string;

    C: Char;

    begin

    S := 'A String';

    C := S[1]; <------- C에 'A'가 들어감.

    end;





    나그네 wrote:

    > 어떻게 해야하나요...

    > 그리고 Char 과 PChar 은 어떤차이가 있나요??