티스토리 뷰
strcpy 함수는 문자열을 복사하는 함수입니다. 그러나 strcpy 함수는 C 스타일의 문자열인 char 타입의 문자열만 처리할 수 있습니다. 따라서 wchar_t 타입의 문자열을 처리하기 위해서는 wcscpy 함수를 사용해야 합니다.
wcscpy 함수는 wchar_t 타입의 문자열을 복사하는 함수로, 사용법은 strcpy 함수와 거의 비슷합니다. 다음은 wcscpy 함수의 사용 예시입니다.
#include wchar_t source[] = L"Hello world!"; wchar_t destination[20]; wcscpy(destination, source); |
위 예제에서 source 문자열은 wchar_t 타입이며, L 접두사를 사용하여 문자열을 나타내고 있습니다. destination은 wchar_t 타입의 문자열을 저장할 수 있는 배열입니다. wcscpy 함수를 사용하여 source 문자열을 destination에 복사합니다.
strchr => wchar_t 함수 => wcschr
strchr 함수는 문자열에서 특정 문자를 검색하는 함수입니다. 그러나 strchr 함수는 C 스타일의 문자열인 char 타입의 문자열만 처리할 수 있습니다. 따라서 wchar_t 타입의 문자열을 처리하기 위해서는 wcschr 함수를 사용해야 합니다.
wcschr 함수는 wchar_t 타입의 문자열에서 특정 문자를 검색하는 함수로, 사용법은 strchr 함수와 거의 비슷합니다. 다음은 wcschr 함수의 사용 예시입니다.
#include <wchar.h> wchar_t str[] = L"Hello, world!"; wchar_t ch = L','; wchar_t* ptr = wcschr(str, ch); if (ptr != NULL) { wprintf(L"The character %lc was found at position %ld.\n", ch, ptr - str); } else { wprintf(L"The character %lc was not found.\n", ch); } |
위 예제에서 str 문자열은 wchar_t 타입이며, L 접두사를 사용하여 문자열을 나타내고 있습니다. ch는 검색할 문자로, wchar_t 타입입니다. wcschr 함수를 사용하여 str 문자열에서 ch 문자를 검색하였습니다. 검색된 문자가 존재하면 해당 문자의 위치를 포인터로 반환하고, 존재하지 않으면 NULL을 반환합니다.
이렇게 검색된 문자의 위치를 포인터로 반환받은 후, 해당 포인터와 문자열의 시작 주소(str)의 차이를 구하여 문자의 위치를 구할 수 있습니다.
위 예제에서는 , 문자가 str 문자열의 5번째 위치에 있으므로, 다음과 같은 결과가 출력됩니다.
The character , was found at position 5. |
strrchr => wchar_t 함수 => wcsrchr
strrchr 함수는 문자열에서 특정 문자를 뒤에서부터 검색하는 함수입니다. 그러나 strrchr 함수는 C 스타일의 문자열인 char 타입의 문자열만 처리할 수 있습니다. 따라서 wchar_t 타입의 문자열을 처리하기 위해서는 wcsrchr 함수를 사용해야 합니다.
wcsrchr 함수는 wchar_t 타입의 문자열에서 특정 문자를 뒤에서부터 검색하는 함수로, 사용법은 strrchr 함수와 거의 비슷합니다. 다음은 wcsrchr 함수의 사용 예시입니다.
#include <wchar.h> wchar_t str[] = L"Hello, world!"; wchar_t ch = L','; wchar_t* ptr = wcsrchr(str, ch); if (ptr != NULL) { wprintf(L"The character %lc was found at position %ld.\n", ch, ptr - str); } else { wprintf(L"The character %lc was not found.\n", ch); } |
위 예제에서 str 문자열은 wchar_t 타입이며, L 접두사를 사용하여 문자열을 나타내고 있습니다. ch는 검색할 문자로, wchar_t 타입입니다. wcsrchr 함수를 사용하여 str 문자열에서 ch 문자를 뒤에서부터 검색하였습니다. 검색된 문자가 존재하면 해당 문자의 위치를 포인터로 반환하고, 존재하지 않으면 NULL을 반환합니다.
이렇게 검색된 문자의 위치를 포인터로 반환받은 후, 해당 포인터와 문자열의 시작 주소(str)의 차이를 구하여 문자의 위치를 구할 수 있습니다.
위 예제에서는 , 문자가 str 문자열의 5번째 위치에 있으므로, 다음과 같은 결과가 출력됩니다.
The character , was found at position 5. |
char *strcpy(char *buf,wchar_t *src) { wcstombs(buf,src,1024); return buf; } |
'C언어' 카테고리의 다른 글
stm32에서 FLASH write를 비동기로 진행하려고 FLASH LOCK을 건 상태에서 FLASH read가 가능한가? stm32에서 FLASH write를 비동기로 진행할 수 있는 방법 (0) | 2023.04.16 |
---|---|
C4996 에러 (0) | 2023.04.09 |
다수의 통신포트를 비동기 방식으로 제어하는 C 코드를 작성하는 방법 (0) | 2023.04.08 |
C언어에서 enum사용법 (0) | 2023.04.08 |
2022 gdipluse 사용법, png 파일 이미지 로딩 (0) | 2022.08.27 |