문자열 포인터 정의시 특수문자 삽입방법?
글쓴이: yarmini / 작성시간: 화, 2006/01/03 - 11:14오전
안녕하세요.
char *p = "ABCDEF";
이렇게 문자열 포인터를 선언시에 특수문자를 삽입할 수 있는 방법을 알고 싶습니다.
예를 들어
"\tABCDEF"
이렇게 하면 \t대신에 9라는 상수값이 들어가게 되잖아요.
이와 같은 방식으로 아스키코드값 0~32를 문자열 안에 넣고 싶어서요.
"\11" 이런 방식으로 해보았지만 상수값 11이 들어가지는 않더군요. 이렇게 하면 '\1' + '1'인지 '\11'인지 구별이 안가겠지만요..
(sprintf사용을 제외하고 초기 선언시입니다^^)
Forums:
char *str = "\x00\x01\x02\xffabc";\x뒤의
char *str = "\x00\x01\x02\xffabc";
\x뒤의 두개의 숫자는 16진 숫자입니다.
답변 감사합니다^^[quote]char *str = "\x00\x
답변 감사합니다^^
그런데 이렇게 해보니까 16진수 숫자입력이 가능한데요.
char *str = "\x12abc";
이렇게 하면 12abc까지 인식을 합니다.
"error C2022: '69923' : too big for character"
이렇게 에러가 나요.
언 제 나 멋 진
\x 다음에 16진수로 인식하는 문자열은 2개가 아니라 16진수에 속하는
\x 다음에 16진수로 인식하는 문자열은 2개가 아니라 16진수에 속하는 문자열까지입니다.
최대한 잘라먹기(maximum munch rule)와도 비슷하죠. 따라서 "\x12abc"는
'\x12', 'a', 'b', 'c', '\0'가 아니라 '\x12abc', '\0'가 되는 것입니다. 이 원칙에 따르면
"\x12kbc"는 '\x12', 'k', 'b', 'c', '\0'가 되는 것이고요.
의도대로 하시려면
char* str = "\x12" "abc";
와 같이 문자열을 분리하면 됩니다.
댓글 달기