wn42
코딩이랑 이것저것
wn42
전체 방문자
오늘
어제
  • 분류 전체보기 (113)
    • 프로그래머스 (23)
      • LV1 (11)
      • LV2 (1)
      • LV3 (3)
      • 연습 (8)
    • 딥러닝 공부 (0)
      • 머신러닝&딥러닝 이론 (0)
    • 임베디드 (17)
      • Adventure Design (1)
      • 센서기반모바일로봇 (5)
      • ROS (9)
      • Google Coral (2)
    • C++ (38)
      • C++ 기초 (34)
      • 자료구조 및 알고리즘 (4)
    • Python (14)
      • 기본 파이썬 문법 (6)
      • Python 기초 (8)
    • 빅데이터 (9)
      • 빅데이터 첫걸음 시작하기(국비지원) (5)
      • 빅데이터 공부 (4)
    • 알고리즘 공부 (2)
      • 기본 알고리즘 (2)
    • 전자공학 (10)
      • 반도체 공정 (3)
      • 무선데이터통신 (7)
      • 반도체공학 (0)
    • C# (0)
      • C# 기본 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 변수
  • 프로그래머스
  • 파이썬
  • 내일배움카드
  • stl
  • 큐
  • Python
  • google coral
  • 스택/큐
  • 인스턴스
  • 패스트캠퍼스
  • 소멸자
  • 조건문
  • 빅데이터 첫걸음 시작하기
  • 클래스
  • 스택
  • numpy
  • 딥러닝
  • 데이터분석
  • 바이트디그리
  • 빅데이터
  • 데이터분석 인강
  • Queue
  • ROS
  • K디지털크레딧
  • 정렬
  • 노드
  • 반복문
  • c++
  • 상속

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
wn42

코딩이랑 이것저것

C++/C++ 기초

[C++] 문자열(String)

2022. 12. 21. 17:04

 문자열 

문자열(String)이란 연속된 문자(Character, Char)의 집합을 말한다.

 

문자열 생성

  • C에서는 문자열을 생성하기 위해서 char 자료형을 배열로 생성하여 문자를 저장하는 방법을 사용했다.
  • 하지만, C++로 넘어오면서 STL에서 string 클래스를 제공하여, 보다 편리하게 문자열을 다룰 수 있게 되었다.
  • #include <string>을 통해 string 헤더를 불러와야 한다.

 

컴파일 단계에서 생성

  • 1. 문자열 생성과 동시에 초기화
  • 2. 문자열 생성한 뒤에, 초기화
#include <iostream>
#include <string>

int main() {
	// 1. 생성과 동시에 초기화
	std::string str1("Hello World!!");

	// 2. 생성 후, 초기화
	std::string str2;
	str2 = "Hello World!!";

	std::cout << str1 << std::endl;
	std::cout << str2 << std::endl;
	return 0;
}
Hello World!!
Hello World!!

 

런타임 단계에서 생성

  • 1. cin 이용 ▶ 공백이 나타나기 전까지의 문자열만 저장한다.
#include <iostream>
#include <string>

int main() {
	std::string str = "";

	std::cin >> str;
	std::cout << str << std::endl;

	return 0;
}
Hello World!!
Hello

 

  • 2. getline 이용 ▶ 공백도 포함하여 문자열을 저장한다.
#include <iostream>
#include <string>

int main() {
	std::string str = "";

	getline(std::cin, str);
	std::cout << str << std::endl;

	return 0;
}
Hello World!!
Hello World!!

 

문자열 리터럴

  • C, C++에서 큰 따옴표(")로 묶인 것들을 문자열 리터럴(string literal)이라고 한다.
  • 리터럴(literal): 소스 코드 상에서 고정된 값을 가지는 것
#include <iostream>

int main() {
	const char *pstr = "literal";

	std::cout << pstr << std::endl;
	return 0;
}
literal
  •  "literal" 이라는 문자열 리터럴(상수도 포함)은 프로그램이 실행되면 메모리 상의 텍스트 세그먼트(segment)라는 공간에 보관된다. 세그먼트에 있는 내용들은 읽기만 가능하며, 수정은 불가능하다. ▶ 따라서 const 키워드를 이용함.
  • char형 포인터 pstr은 세그먼트 공간에 저장된 "literal"이라는 문자열 리터럴의 시작 주소값을 가리킨다.
  • 반면에 char형 배열에 텍스트를 저장하는 경우에는 stack이라는 메모리 공간에 저장되기 때문에 수정이 가능하다.

 

string에 대한 자세한 사용 방법은 하단의 게시물에 정리하였으므로, 다음을 참고

 

[C++] String

string 클래스는 C++ STL(표준라이브러리)에서 제공하는 클래스이다. 문자열을 다루는 방법은 2가지가 있다. 1. char array을 이용하는 방법 2. string str 방식 C에서는 1 방식만 이용할 수 있고, C++에서는 2

wn42.tistory.com

    'C++/C++ 기초' 카테고리의 다른 글
    • [C++] 포인터와 배열
    • [C++] 포인터(Pointer) 기초
    • [C++] 배열(Array)
    • [C++] 반복문
    wn42
    wn42
    코딩이랑 이것저것 하는 블로그

    티스토리툴바