C++ 문자

NYH·2023년 11월 19일

C++

목록 보기
8/17

목차

  1. 문자
  2. 문자열
    ?. 문제풀이


1. 문자

문자의 표현

  • c++ 에서 문자는 char 데이터 타입을 이용하여 표현합니다.
  • ' 따옴표 안에 A, b, i, & 같이 문자를 넣어서 표현합니다.


아스키 코드 및 유니코드

  • 각 문자는 컴퓨터에서 숫자로 표현됩니다.
  • ASCII 코드는 초기에 7비트로 영문, 알파벳, 숫자, 특수문자 등을 나타내는데 사용됩니다.
  • 유니코드는 글자들을 전세계적으로 일관되게 표현하기 위한 표준입니다.
  • C++ 에서는 wchar_t 타입을 사용하여 유니코드를 표현할 수 있습니다.
  • wchar_t 타입은 문자열 정의시 L을 앞에 붙여야합니다.
whcar_t wstr = L"String";


문자 변수 및 상수

  • 문자를 변수에 할당하거나 상수로 사용이 가능합니다.
// 변수에 문자 `A` 할당
char myChar = 'A';

// 개행 문자를 상수로 정의하는 예시
const char newLine = '\n';


문자열과의 관계

  • 문자열은 문자의 배열로 표현됩니다. 문자열은 문자의 sequence(데이터가 순서대로 나열되어 있는 구조)입니다.
  • 문자열을 사용하려면 C++ 에서는 문자열 라이브러리(string)을 활용하거나, 문자 배열을 직접 다루는 방법을 사용할 수 있습니다.


문자 입력과 출력

  • cin을 사용하여 키보드로부터 문자를 입력받습니다.
  • cout을 사용하여 문자를 출력합니다.
char inputChar;
cin >> inputChar;


ASCII 코드

  • 1960년대 미국에서 정의한 표준화 부호체계입니다.
  • ASCII 코드는 7비트만 사용하는데 맨 앞의 1 비트는 통신 오류를 확인하는데 사용합니다.
  • 이러한 오류검출 비트를 Parity bit라고 합니다.


유니코드(Unicode)

  • 전 세계의 모든 문자들 다루도록 설계된 표준 문자 전산 처리 방식 입니다.
  • 2바이트 단위로 표현함으로써 표현할 수 있는 언어의 수를 크게 늘렸습니다.



2. 문자열

char 배열과 문자열

  • c++ 에서는 char 배열의 마지막에 \0 null 기호가 들어가 있는 문자 sequence를 문자열이라고 합니다.


문자열 접근

#include <wchar.h>

int main()
{
	wchar_t[10] wArr = L"String";
    const wchar_t* wChar = L"String";
    
    // 가능 (read)
    wArr[1];
    wChar[1];
    
    // 가능 (write)
    wArr[1] = 'z';
    
    // 불가능 (write)
    wChar[1] = 'z';
}

문자열에 대한 접근을 정의할 때 문자 배열로 선언한 값은 값에 대한 역참조를 통해 수정이 가능합니다.
하지만 다음과 같이 const 관점으로 바라보게 되면 해당 문자열을 수정할 수 없습니다.


string

  • C++ STL에서 제공하는 클래스입니다.


string의 특징

  1. 문자열의 끝에 \0 문자가 들어가지 않습니다.
  2. 배열처럼 한 문자씩 다룰 수 있습니다.
  3. string 클래스 끼리는 문자열을 합치는 것이 + 연산자 하나만으로 가능합니다.


string capacity

  • string 클래스로 선언된 문자열은, 문자열의 길이 말고도 capacity 값이 존재합니다.
  • capacity란 string 객체에 들어갈 메모리의 크기로 string 문자열의 크기가 가변적이기 때문에 실제 길이보다 넉넉하게 할당됩니다.
  • capacity 값을 지정하지 않으면 임의로 capacity값을 지정하게 되는데, 이를 직접 지정하고 싶다면 str.reserve(n) 형식을 이용하여 capacity 값을 지정할 수 있습니다.


string의 요소 접근

string str = "String";

 // 배열처럼 접근. => 반환 문자는 char형
 str[1];
 
 // .at(index)로 접근 => 반환 문자는 char형
 str.at(1);


string 문자열의 길이 반환

string str = "String";
str.size();
str.length();


string 멤버 함수 목록

string 멤버 함수 목록


?. 문제 풀이

문제 1.

해당 문자열의 길이를 반환하는 int형 함수를 직접 작성해주세요.


int getLength(const char* cStr)
{
	// 작성.
}

int main()
{
	const char* cStr = "cString";
    
    std::cout << getLength(cStr) << std::endl;
}


문제 2.

문자열을 합치는 함수를 작성해주세요.

int getLength(const char* cStr)
{
	// 문제 1번 답안 작성
    
}


char* combineStr(const char* str1, int maxLength, const char* str2)
{
	// 문제 2번 답안 작성
	
}



int main()
{
	const char* cStr = "cString";
    
}


profile
그냥 해라

0개의 댓글