문자와 문자열

2024. 6. 21. 02:03프로그래밍 언어/C++

문자 자료형

 

문자 자료형

  •  1 BYTE = 8 bit (256개 표현 가능)
자료형 크기 범위
char signed char,  __int8 1 BYTE -128 ~ 127
unsigned char - 1 BYTE 0 ~ 255
wchar_t __wchar_t 2 BYTE 0 ~ 65,535
char8_t (C++20) - 1 BYTE UTF-8 유니코드 저장 가능
char16_t - 2 BYTE UTF-16 유니코드 저장 가능
char32_t - 4 BYTE UTF-32 유니코드 저장 가능
  • char : 알파벳 / 숫자 문자를 나타냄
  • wchar_t : 와이드 문자 형식 또는 멀티바이트 문자를 지원함 (유니코드 지원)
    • wchar_t인 경우 문자형식이 다르기 때문에, std:: cout 이 아닌 std::wcout을 사용해야한다.
    • #include <cwchar> -> wcslen()

 

#include <iostream>
#include <cwchar>
#include <locale>

using namespace std;

int main(void){
	char a = 'A';
    
    // char 변수 출력
    cout << a << endl;
//result : A
//-----------------------------------------------------------    
    wchar_t ws[] = L"프로그래밍!";

    // 로케일 설정 (UTF-8 사용)
    locale::global(locale("ko_KR.UTF-8"));

    // 와이드 문자열 출력
    wcout.imbue(locale("ko_KR.UTF-8"));

    for (int i = 0; i < wcslen(ws); i++) {
        std::wcout << ws[i];
    }
    std::wcout << std::endl;

//result : 프로그래밍!
//-----------------------------------------------------------

    return 0;
}

 

 

접두어 / 접미어

구분 자료형 선언 값 표현
접미어 long l L
unsigned short u u
unsigned long ul UL
long long ll LL
unsigned long long ull ULL
진수표현 16진수 - 0x
8진수 - 0
2진수 - 0b
접두어 배열 a / arr -
bool b -
char c -
double d -
float f f
파일 기술자 fd -
파일 포인터 fp -
int i -
포인터 p -
함수포인터 fpn -
참조형 변수 r -
문자열 str -
unsigned int u / w  
wchar_t - L
const char* - u8 / R"(값)" (대부분 생략)
char16_t - u
char32_t - U
#include <iostream>
#include <string>
#include <cstdio>
#include <fcntl.h>


using namespace std;

int main(void)
{  

    // 접미어 사용 예제
    
    long lValue = 100L;
    unsigned int uValue = 200u;
    unsigned long ulValue = 300ul;
    long long llValue = 400ll;
    unsigned long long ullValue = 500ull;
    
    //[진수 표현]
    int hex = 0x1A; // 16진수 1A (10진수 26)
    int oct = 075; // 8진수 75 (10진수 61)
    int bin = 0b1010; // 2진수 1010 (10진수 10)

    

    // 접두어 사용 예제
    
    int arrNumbers[5] = { 1, 2, 3, 4, 5 };
    bool bIsValid = true;
    char cGrade = 'A';
    double dRate = 4.5;
    long double x = 42.0L;
    float fHeight = 5.9f;
    /*int fdFile = open("example.txt", O_RDONLY);*/ // Linux
    FILE* fpFile = fopen("example.txt", "r");
    int iCounter = 10;
    int* pNumber = &iCounter;
    void (*pfnFunction)() = nullptr;
    int& rReference = iCounter;
    std::string strName = "Alice";
    unsigned int uAge = 30;
    unsigned int wWeight = 70;

    wchar_t ws[] = L"Hello, World!";
    const char* utf8 = u8"Hello, World!";
    char16_t utf16[] = u"Hello, World!";
    char32_t utf32[] = U"Hello, World!";
    const char* raw = R"(Hello, "World"!)"; // C++ 11이상

}

'프로그래밍 언어 > C++' 카테고리의 다른 글

비트연산  (0) 2024.06.21
연산 (산술, 사칙, 증감, 비교, 논리)  (0) 2024.06.21
자료형  (0) 2024.06.21
배열  (0) 2024.05.31