메모리에 저장된 일련의 연속된 문자(character)들의 집합
const int SIZE = 20;
char menu[SIZE];
char name[SIZE];
cout << "불러드릴 이름은? : ";
cin >> name;
cout << "뭘 시키실 건가요? : ";
cin >> menu;
cout << menu << " 시키신 " << name << "님 음료 나왔습니다~";
[출력]
불러드릴 이름은? : 꿈별
뭘 시키실 건가요? : 바닐라라떼
바닐라라떼 시키신 꿈별님 음료 나왔습니다~
❗ 문제점
const int SIZE = 20;
char menu[SIZE];
char name[SIZE];
cout << "불러드릴 이름은? : ";
cin.get(name, SIZE).get();
cout << "뭘 시키실 건가요? : ";
cin.get(menu, SIZE).get();
cout << menu << " 시키신 " << name << "님 음료 나왔습니다~";
[출력]
불러드릴 이름은? : 꿈 별
뭘 시키실 건가요? : 자허블
자허블 시키신 꿈 별님 음료 나왔습니다~
❗ 문제점
const int SIZE = 20;
char menu[SIZE];
char name[SIZE];
cout << "불러드릴 이름은? : ";
cin.get(name, SIZE).ignore(SIZE, '\n');
cout << "뭘 시키실 건가요? : ";
cin.get(menu, SIZE).ignore(SIZE, '\n');
cout << menu << " 시키신 " << name << "님 음료 나왔습니다~";
[출력]
불러드릴 이름은? : onetwothreefourfivesixseven
뭘 시키실 건가요? : icevanillalatteandcookie
icevanillalatteandc 시키신 onetwothreefourfive님 음료 나왔습니다~
👉 20바이트 이상의 이름이나 메뉴를 입력해도 정확히 20바이트까지만 입력받는다.
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string address, name;
cout << "불러드릴 이름은? : ";
getline(cin, name);
cout << "뭘 시키실 건가요? : ";
getline(cin, menu);
cout << address << "에 살고 있는 " << name << "님~ 감사합니다!";
return 0;
}
[출력]
불러드릴 이름은? : onetwothreefourfivesixseven
뭘 시키실 건가요? : icevanillalatteandcookie
icevanillalatteandc 시키신 onetwothreefourfive님 음료 나왔습니다~
string str1; //문자열 선언
str1 = "Hello"; //문자열 초기화
string str2 = "hihello" //문자열 선언과 동시에 초기화
💡 string 클래스의 length() 메소드나 size() 메소드를 사용하면 string 객체의 현재 길이를 알 수 있다.
❗ 컴퓨터에서의 한글은 2바이트로 취급된다는 점을 주의한다.
#include <iostream>
#include <string>
using namespace std;
int main(void){
string str1 = "배고파";
string str2;
str2 = str1;
cout << str2;
}
[결과]
배고파
#include <iostream>
#include <string>
using namespace std;
int main(void){
string str1 = "김치";
string str2 = "볶음밥";
string str3;
str3 = str1 + str2;
cout << str3 << endl;
str1 += str2;
cout << str1 << "~";
}
❗ 하지만 cin 객체를 이용한 문자열 입력은 한 단어 단위로 수행됨
-> 문자열을 한 행(line)씩 읽고 싶을 때는 getline() 함수 사용
string kfood, jfood;
cout << "한식 1개 쓰기 : ";
getline(cin, kfood);
cout << "일식 1개 쓰기 : ";
getline(cin, jfood);
cout << "한식 예시 : " << kfood << "일식 예시 : " <<jfood;
[결과]
한식 1개 쓰기 : 김 치 볶음 밥
일식 1개 쓰기 : 오 코노 미야 키
한식 예시 : 김 치 볶음 밥, 일식 예시 : 오 코노 미야 키