_tcscpy_s 예제

예를 들어 CString이 있습니다. 그러나 CString에서 LPCTSTR로 캐스팅하는 것은 const char* 또는 char*로 필요하지만 const char*로 캐스팅하는 것은 유효하지 않습니다. 그러나 방법이 있다. 다음은 strtok() 사용 예 및 NOTES의 설명에 대한 예제 1, 2 및 3예제 를 참조하십시오. 컴파일 및 실행 시 이 예제에서는 다음 예제에서 strtok()를 사용하여 SPACEs, TAB 또는 NEWLINEs의 조합으로 구분된 두 개의 문자 문자열로 선을 분리합니다. 배열의 문제 중 하나는 요소 수를 결정하는 것입니다. 다음 예제에서 clear() 함수는 관용구 sizeof(배열) / sizeof(배열[0])를 사용하여 배열의 요소 수를 결정합니다. 그러나 배열은 매개 변수이기 때문에 포인터 형식입니다. 결과적으로 sizeof(배열)는 sizeof(int*)와 같습니다. 예를 들어, 크기(int) == 4 및 sizeof(int*) == 4, 식 sizeof(배열) / sizeof(배열[0])가 전달된 배열의 길이에 관계없이 1로 평가되는 아키텍처(예: x86-32)에서는 나머지 배열은 영향을 받지 않습니다. 문자열 _tcscpy_s 및 _tcsncpy_s를 복사하는 경우 strcpy 및 strncpy 대신: Visual Studio 솔루션 탐색기의 경우 프로젝트 속성에서 유니코드를 사용하려면 문자 집합으로 “유니코드 문자 집합 사용”을 선택해야 합니다.

그런 다음 매크로로 줄 바꿈하는 코드에서 유니코드 문자열을 쉽게 사용할 수 있습니다. “유니코드 문자 집합”을 사용하지 않도록 선택하고 ANSI가 지원하는 문자 집합(예: 영어 알파벳)을 사용하는 경우에도 동일한 매크로가 잘 작동합니다. 이점이 있는 동안 코드는 동일하게 유지됩니다. 컴파일하는 동안 인접 문자 시퀀스와 동일하게 접선된 문자열 리터럴 토큰으로 지정된 다중 바이트 문자 시퀀스가 단일 다중 바이트 문자 시퀀스로 연결됩니다. 토큰 에 인코딩 접두사가 있는 경우 결과 멀티바이트 문자 시퀀스는 동일한 접두사를 갖는 것으로 처리됩니다. 그렇지 않으면 문자 문자열 리터럴로 처리됩니다. 서로 다르게 접두사된 와이드 스트링 리터럴 토큰을 연결할 수 있는지 여부(그리고 만약 그렇다면 생성된 다중바이트 문자 시퀀스의 처리)가 구현정의됩니다. 예를 들어, 인접 문자열 리터럴 토큰의 다음 시퀀스 각각 C에서 문자 상수는 int 형식입니다. 그 값은 int로 변환 된 일반 char의 값입니다. 아마도 놀라운 결과는 모든 문자 상수 c에 대해 sizeof c가 sizeof int와 동일하다는 것입니다. 이는 예를 들어, `a`의 sizeofx가 문자 문자의 변수인 경우 sizeof x와 같지 않다는 것을 의미합니다. strcmp 및 strncmp 대신 문자열을 비교하려면 _tcscmp 및 _tcsncmp를 사용합니다.

다음은 printf와 같은 문자열의 서식을 지정하려면 CString::Format 함수를 사용할 수 있습니다. 예를 들어 IP 주소를 얻으려면 문자열의 문자가 실행 환경에서 해석된 문자 집합인 실행 문자 집합에 속합니다. 이러한 문자는 C 표준에 의해 정의된 기본 문자 집합과 기본 문자 집합의 멤버가 아닌 0개 이상의 확장된 문자 집합으로 구성됩니다. 실행 문자 집합의 멤버 값은 정의된 구현이지만 예를 들어 7비트 미국 ASCII 문자 집합의 값일 수 있습니다. strlen() 함수는 null 바이트(길이) 종료 앞에 있는 null-terminated 바이트 문자열의 문자 수를 계산합니다. 그러나 와이드 문자는 이 예제에서와 같이 특히 ASCII 문자 집합에서 가져온 경우 null 바이트를 포함할 수 있습니다. 결과적으로 strlen() 함수는 문자열의 첫 번째 null 바이트 앞에 있는 바이트 수를 반환합니다. 배열 변수는 종종 문자열 리터럴에 의해 초기화되고 문자열 리터럴의 문자 수와 일치하는 명시적 바운드로 선언됩니다. 예를 들어 다음 선언은 배열이 보유할 수 있는 것보다 한 개의 문자(“로 계산)를 정의하는 문자열 리터럴을 사용하여 문자 배열을 초기화합니다. 문자 데이터는 부호 확장을 방지하기 위해 부호없는 char로 해석된 다음 int로 변환됩니다.