[C++] 29. 문자열: string이란?

2022. 6. 14. 16:07코딩 1막 <C++개념편>

728x90

프로그래밍에서, 스트링(string)이란 문자열이나 비트열과 같이 기호나 값들이 연속되는 것을 말한다.

문자열의 경우에는 그 값들이 따옴표 내에 들어 있는 경우가 많다.

예를 들어, HELLO이라고 되어 있으면 대개 변수명을 가리키지만, "HELLO"과 같이 표현되어 있으면 문자열을 나타내는 것이다.

#include <iostream>
#include <string>

using namespace std;

// 문자열인 스트링(string)을 쓰는 이유
// 다양한 기능을 가졌기 때문이다(기능을 가진 함수의 클래스)
// textRPG를 만들때 유용하다

void main()
{
	char charText[] = "Hello World";		// 문자
	string stringText = "Hello World";		// 문자열

	cout << charText << endl;				// Hello World 출력
	cout << stringText << endl;				// Hello World 출력

	cout << charText[0] << endl;			// H 출력
	cout << stringText[0] << endl;			// H 출력

	// string변수.length() : 문자의 길이를 반환
	cout << stringText.length() << endl;	// 11 출력

	// string변수.compare(타겟문자열)	 : 문자열이 타겟문자열과 같은지 비교
	// 같으면 0을 반환, 작으면 1을 반환, 크면 -1을 반환
	cout << stringText.compare("Hello World") << endl;	// 0 출력

	// stringText.substr() : 문자열 전체 반환
	cout << stringText.substr() << endl;	//  Hello World 출력

	// stringText.substr(시작인덱스) : 시작인덱스부터 뒤로 쭉 문자열 반환
	cout << stringText.substr(6) << endl;	// World 출력

	// stringText.substr(시작인덱스,길이) : 시작인덱스부터 길이만큼 문자열 반환
	cout << stringText.substr(6,2) << endl;	// Wo 출력

	// stringText.find(찾을문자열) : 찾을문자열이 있는지 검색하고 있으면 시작인덱스 반환
	cout << stringText.find(" ") << endl;	// 5 출력
	// find로 찾지 못했을 때 나오는 수
	cout << string::npos << endl;			// 4294967295 출력

	if (stringText.find("*") == string::npos)
	{
		cout << "해당 문자열을 찾을 수 없었습니다" << endl;	// 해당 문자열을 찾을 수 없었습니다 출력
	}

	// find로 찾을문자열이 존재할 때
	if (stringText.find(" ") != string::npos)
	{
		cout << stringText.substr(0, stringText.find(" ")) << endl;	// Hello 출력
	}
	if (stringText.find(" ") != string::npos)
	{
		cout << stringText.substr(stringText.find(" ")) << endl;	//  World 출력
	}
}

출력 결과

728x90