반응형
Notice
Recent Posts
Recent Comments
Link
DNF LOVE
C++문법> STL의 string에 대해 알아보자. (string과 char 배열과의 차이) 본문
반응형
C++이 지원하는 STL 중에 문자열을 담고있는 string이 있다. 이것을 사용하려면 #include <string> 을 꼭 선언해주어야 한다.
1. string 선언
string str = "1234";
// 혹은
strign str2;
str2 = "1234";
2. 확장 및 문자열 추가
string str = "12345";
str += "6789";
// 혹은
strign str2 = "12345";
str2.append("6789");
3. 해당 문자열이 재할당 하지 않고도 저장할 수 있는 문자열 길이 반환,
string str = "1234";
str.capacity();
문자열은 문자열이 늘어났을 때, 현재 capacity보다 클 경우 더 큰 메모리를 사용할 수 있도록 재할당된다.
4. 최대한 메모리를 할당했을 경우, 저장할 수 있는 문자열 길이 반환
string str = "1234";
str.max_size();
5. string에 있는 특정 문자 탐색
string stl = "1234 Hello";
cout << stl.find("12") << endl;
// 12를 찾았으면 0 반환
cout << stl.find("5678") << endl;
// 5678 문자열 없으면 쓰레기값 출력
if (stl.find("1234") != string::npos) {
cout << "1234 문자열 찾았다!" << endl;
}
else {
cout << "1234 문자열 없어요";
}
6. string 간 문자열 복사
string stl = "1234 Hello";
string temp;
temp = stl;
7. string 간 문자열 비교
string stl1 = "1234";
string stl2 = "1234 Hello";
if (stl1.compare(stl2) == 0) {
cout << "둘은 동일한 문자열" << endl;
}
else if (stl1.compare(stl2) < 0) {
cout << "stl1이 stl2보다 사전순으로 앞" << endl;
}
else if (stl1.compare(stl2) > 0) {
cout << "stl1이 stl2보다 사전순으로 뒤" << endl;
}
여기서는 stl1이 stl2보다 사전순으로 앞이다.
8. 특정 위치 문자 받기(JAVA에서의 charAt)
string s = "1234 Hello";
cout << s.at(0) << endl; // 1
cout << s.at(s.length() - 4); // e
** char 배열과 비교하기
1. 길이 반환
1) string 길이 반환
string str = "1234";
str.length();
stl.size();
// 위 둘은 형식만 다르지 같은 일을 하는 멤버 함수
2) char 배열 길이 반환
char c[5];
int size = strlen(c);
2. 표준 입력 읽고 출력하기.
1) string - 공백, 개행이 무시된다. cout 을 출력하기 위해서는 #include 필요, 반복문으로 배열 하나씩 출력도 가능
#include <string>
string str;
cin >> str;
cout << str << endl;
2) char 배열 - 반복문 돌리기 혹은 배열 전체로 받아올 수 있다. 공백, 개행 무시가 가능하다.
const int index = 5;
char c[index];
// 배열 전체로 받아오기
// cin >> c;
for (int i = 0; i < index; i++) {
cin >> c[i];
}
// 배열 전체로 출력
// cout << c;
for (int i = 0; i < index; i++) {
cout << c[i] << endl;
}
반응형
'Programming > C++' 카테고리의 다른 글
C++> STL(Standard Template Libary) Contains (0) | 2019.10.23 |
---|---|
C++ STL> Vector Container 에 대해 알아보자.(2차원 vector 사용) (0) | 2019.10.23 |
C++문법> 메모리 동적 할당 (0) | 2019.10.23 |
C++ 문법> String to char, char to String 형변환 (0) | 2019.10.23 |
c++> int to string(int -> string), string to int(string -> int) 형변환 (0) | 2019.10.23 |