string 클래스 개요
string 클래스는 문자열의 크기에 맞추어 스스로 메모리 크기를 조절하므로 사용하기 매우 편리하다.
string.str="I love"; // str은 'I', ' ', 'l','o','v','e',' ' 의 7개 문자로 구성
str.append("C++."); //str은 "I love c++"
string 객체 생성
string str;
string address("부산광역시 사하구 하단동");
string copyAddress(address);
char text[]={'L','o','v','e',' ','c','+','+','\0'}; //C스트링
string title(text); // "Love C++"을 가진 string 객체 생성
string 객체가 가진 문자열 출력
cout << address << endl;
cout << title << endl;
string 객체의 동적 생성
string *p=new string("C++");
cout <<*p ;
p - > append("Great!!");
cout <<*p;
delete p;
string 클래스를 이용한 문자열 생성 및 출력
#include<iostream>
#include<string>
using namespace std;
int main(){
string a1;
string address=("부산광역시 사하구 하단동");
string copyAddress(address);
char text[]={'a','b','c','d','e','f','g','h','j'};
string title(text);
cout << a1 << endl ;
cout << address << endl ;
cout << copyAddress << endl ;
cout << title << endl ;
}
string 객체에 문자열 입력
string name;
cin >> name;
- '>>' 연산자는 사용하기 쉽지만, 공백 문자가 입력되면 그 앞까지 하나의 문자열로 다루기 때문에 공백 문자를 포함하는 문자열은 읽어 들일 수 없다. 이런 문제는 <string> 헤더 파일에 선언된 getline()전역 함수를 이용하면 된다.
getline()으로 공백 문자가 낀 한 라인의 문자열을 입력받는 예
string name;
getline(cin,name,'\n'); // '\n'을 만날 때까지 키보드(cin)로부터 문자열을 읽어 name에 저장
위의 getline()은 cin.getline()과 다르다. getline()라인의 첫 번째 인자에는 cin을 두 번째 인자에는 string 객체를, 세 번째 인자에는 문자열에는 마지막을 표시하는 구분 문자를 준다. 앞의 코드는 '\n'을 만날 때까지 입력된 문자들을 name 객체에 문자열로 저장하는 코드이다.
아래 코드는 string 배열과 문자열 키 입력을 응용한 코드이다. [생능 출판사 명품C++프로그래밍 p.193]
#include <iostream>
#include <string>
using namespace std;
int main(){
string array[5];
for (int i=0;i<5;i++){
cout << "이름>>";
getline(cin,array[i],'\n');
}
string latter=array[0];
for (int i=1;i<5;i++){
if(latter<array[i])
latter=array[i];
}
cout<<"사전에서 가장 뒤에 나오는 문자열은"<<latter<<endl;
}
문자열 다루기
'Programming Language > C++' 카테고리의 다른 글
| 함수의 인자 전달 방식 (1) | 2023.04.07 |
|---|---|
| 문자열 다루기 (0) | 2023.04.07 |
| this의 기본 개념 (0) | 2023.04.07 |
| 객체 배열의 동적 생성 및 반환 (0) | 2023.04.06 |
| C++ 동적 메모리 할당 및 반환 (0) | 2023.04.06 |