본문 바로가기
Program Language/c++

C++ 기초(std::string 클래스)

by 토담이아빠 2023. 3. 2.

std::string 클래스

 

C++ 표준 라이브러리에서 제공하는 std::string 클래스는 문자열을 다루는 데 매우 유용한 도구입니다. C 스타일의 문자열을 사용하는 것에 비해 많은 이점이 있습니다. 이번 포스팅에서는 std::string 클래스의 사용법과 그 장점에 대해서 정리했습니다.


C 스타일 스트링의 문제점

 

C 스타일 문자열은 null로 끝나는 문자 배열입니다. 따라서 문자열 길이를 추적하기 위해 null 문자를 삽입해야 합니다. 이는 많은 문제를 발생시킬 수 있습니다. 예를 들어, 문자열 길이를 추적하지 않거나, 문자열 길이를 초과하는 메모리 할당 또는 복사 등의 문제가 발생할 수 있습니다.

 

또한, C 스타일 문자열은 문자열을 조작하기 위한 여러 함수를 제공하지만, 이러한 함수들은 보안에 취약하며 예외를 처리할 수 없습니다.

 

std::string 클래스의 사용법

 

std::string 클래스는 C 스타일 문자열의 문제점을 해결하고 많은 유용한 기능을 제공합니다. 이 클래스는 표준 라이브러리의 <string> 헤더 파일에 정의 되어 있습니다.

 

아래는 std::string 클래스를 사용하여 문자열을 생성하는 예제 코드입니다.


#include <iostream>
#include <string>

using namespace std;

int main() {

    std::string str1 = "Hello";  // 문자열 초기화
    std::string str2("World");
    std::string str3 = str1 + " " + str2;  // 문자열 결합
    std::cout << str3 << std::endl;

    return 0;
}

[결과]

Hello World

위의 코드에서는 std::string 클래스를 사용하여 문자열을 생성하고 초기화합니다. '+' 연산자를 사용하여 문자열을 결합할 수 있습니다.

 

std::string 리터럴

 

std::string 클래스는 문자열 리터럴을 사용하여 간단하게 문자열을 초기화할 수 있습니다.


std::string str = "Hello, World!";

위의 코드에서 std::string 클래스는 문자열 리터럴을 사용하여  str 객체를 초기화합니다. 문자열 리터럴을 사용하여 초기화하는 경우, std::string 클래스는 자동으로 문자열 길이를 계산하고 메모리를 할당합니다.

 

하이레벨 숫자 변환

 

std::string 클래스는 숫자를 문자열로 변환하거나, 문자열을 숫자로 변환하는 기능을 제공합니다. 이를 통해 프로그래머는 하이레벨에서 숫자를 다룰 수 있으며, 사용자가 입력한 문자열을 숫자로 변환하여 유효성 검사를 수행할 수 있습니다.

 

아래는 std::string 클래스를 사용하여 숫자를 문자열로 변환하는 예제 코드입니다.


#include <iostream>
#include <string>

using namespace std;

int main() {

    int number = 123;
    std::string str = std::to_string(number);
    std::cout << str << std::endl;

    return 0;
}

[결과]

123

위 코드에서는 std::to_string() 함수를 사용하여 정수형 변수를 문자열로 변환합니다. 이 함수는 매개 변수로 전달된 값을 문자열로 변환한 후 반환합니다.

 

std::to_string() 함수는 다양한 숫자타입을 매개변수를 받도록 오버로딩된 함수입니다. 정수형 숫자뿐만 아니라 실수형 숫자도 변환해줍니다.

 

로 레벨 숫자 변환

 

std::string 클래스는 숫자를 문자열로 변환하는 기능뿐만 아니라, 문자열을 숫자로 변환하는 기능도 제공합니다. 이를 통해, 문자열을 숫자로 변환하여 연산을 수행할 수 있습니다.

 

아래는 std::string 클래스를 사용하여 문자열을 숫자로 변환하는 예제 코드입니다.


#include <iostream>
#include <string>

using namespace std;

int main() {

    std::string str = "123";
    int number = std::stoi(str);
    std::cout << number << std::endl;

    return 0;
}

[결과]

123

위 코드에서는 std::stoi() 함수를 사용하여 문자열을 정수로 변환합니다. 이 함수는 매개 변수로 전달된 문자열을 정수로 변환한 후 반환합니다.

 

std::string 클래스는 C 스타일 문자열의 문제점을 해결하고 문자열 조작 및 변환에 매우 유용한 기능을 제공합니다. 이 클래스를 사용하면 문자열 조작 및 변환 작업이 더욱 쉬워지며, 프로그램의 안전성과 보안도 향상됩니다.


 

댓글