개요
C
에서 string을 다루기 위해서는 문자열(character array) 을 사용합니다. 예를 들면 다음과 같습니다.
char buf[12] = "Hello World";
printf ("%s\n", buf);
반면 C++
의 경우는 라이브러리를 통해 String Class 를 제공하고 있습니다. String Class 내부적으로는 C
와 동일하게 문자열을 통하여 데이터를 저장하고 있지만 Class 에서 메모리 관리, 할당, Null Termination 등을 관리해 주고 있습니다. 덕분에 String 을 다루는 것이 C
에 비해 조금 더 편리하다고 할 수 있습니다.
예를 들어 C
에서 문자열의 길이를 프로그램 실행시간에 가변으로 변경하고자 할 경우 동적 할당을 사용하도록 직접 구현해야겠지만 C++ 의 경우는 String Class 를 사용하면 됩니다.
이번 포스트에서는 C++
에서 제공하는 String Class 에 대해서 간략히 정리해 보도록 하겠습니다.
생성
C
언어 형태로 생성할 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
// string 을 생성합니다.
string str ="Hello World";
cout << str << endl;
}
- 혹은 생성자를 사용하여 생성할 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
// string 을 생성합니다.
string str("Hello World");
cout << str << endl;
}
String 다루기
size
.size()
매서드를 사용할 수 있습니다..length()
매서드를 사용할 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
string str ="Hello World";
n = str.size();
cout << str << endl << "string Size(=" << n << ")" << endl;
}
두개의 String 합치기
+
연산자를 사용할 수 있습니다.
... (생략) ...
string str1 ="Hello ";
string str2 ="World";
string str3 = str1 + str2;
cout << str3 << endl; // Hello World
... (생략) ...
.append()
매서드를 사용할 수 있습니다.
... (생략) ...
string str1 ="Hello ";
string str2 ="World";
str1.append(str2);
cout << str1 << endl; // Hello World
... (생략) ...
String 내부의 문자(char
) 접근
C
와 마찬가지로 [] 를 사용하여 할 수 있습니다.- 혹은
.at()
매서드를 이용할 수도 있습니다.
... (생략) ...
string str = "Hello World";
for (int i=0;i<str.size();i++) {
if (i%2) {
cout << str[i];
} else {
cout << str.at(i);
}
}
cout << endl;
... (생략) ...
'프로그래밍 언어 > C++' 카테고리의 다른 글
C++ 기본입력 (문자열 입력받기) (0) | 2020.02.10 |
---|---|
C++ 가변 배열(Variable Sized Arrays) (0) | 2020.02.10 |
C++ 클래스(Class) (0) | 2018.07.06 |
Functions (0) | 2018.06.13 |
Arrays Introduction (0) | 2018.06.12 |