[C++] 사용자 입력과 string
판다코딩 C++ 인강 공부 정리
[ 사용자 입력 ]
#include <iostream>
#include <cstring> //strlen() 함수를 사용하기 위한 헤더파일
using namespace std;
int main(){
//사용자 입력
const int Size = 15;
char name1[Size]; //비어있는 배열
char name2[Size] = "C++programing";
cout << "안녕하세요! 저는 " << name2;
cout << "입니다! 성함이 어떻게 되시나요?\n";
cin >> name1;
cout << "음, " << name1 << "씨, 당신의 이름은 ";
cout << strlen(name1) << "자입니다만\n";
cout << sizeof(name1) << "바이트 크기의 배열에 저장되었습니다. \n"; //sizeof() 변수의 바이트의 크기를 반환하는 함수
cout << "이름이 " << name1[0] << "자로 시작하는군요.\n";
name2[3] = '\0';
cout << "제 이름의 처음 세 문자는 다음과 같습니다: ";
cout << name2 << endl;
return 0;
}
cin :사용자가 입력한 것을 변수에 저장하는 함수
cin >> name1;
사용자의 입력을 받아 name1에 저장한다.
name2[3] = '\0';
cout << "제 이름의 처음 세 문자는 다음과 같습니다: ";
C++를 출력하기 위해서 4번째의 문자에 null문자를 삽입한 것을 확인할 수 있다.
cout은 문자열을 출력할 때 null문자까지만 출력하기 때문에
배열의 4번째 원소에 명시적으로 null문자를 입력하게 되면 C++까지만 출력을 한다.
white space(공백)을 사용하는 경우 공백 뒤의 글자는 무시하고 공백 이전의 글자만 저장된다.
cin은 enter, space, tap을 만났을 때 문자열이 끝난 것으로 인식한다.
#include <iostream>
#include <cstring> //strlen() 함수를 사용하기 위한 헤더파일
using namespace std;
int main(){
//사용자 입력
const int Size = 15;
char name1[Size]; //비어있는 배열
char name2[Size] = "C++programing";
cout << "안녕하세요! 저는 " << name2;
cout << "입니다! 성함이 어떻게 되시나요?\n";
//cin >> name1;
cin.getline(name1, Size); //공백을 포함하여 저장하는 방법
cout << "음, " << name1 << "씨, 당신의 이름은 ";
cout << strlen(name1) << "자입니다만\n";
cout << sizeof(name1) << "바이트 크기의 배열에 저장되었습니다. \n"; //sizeof() 변수의 바이트의 크기를 반환하는 함수
cout << "이름이 " << name1[0] << "자로 시작하는군요.\n";
name2[3] = '\0';
cout << "제 이름의 처음 세 문자는 다음과 같습니다: ";
cout << name2 << endl;
return 0;
}
공백을 포함하여서 문자열을 인식하는 방법
get과 get line
두 개는 동일한 방법으로 동작한다.
[ string ]
#include <iostream>
using namespace std;
int main(){
char char1[20];
char char2[20] = "jaguar";
string str1;
string str2 = "panda";
//char1 = char2; //틀리다
str1 = str2; // 맞다
cout << str1 << endl; //panda
return 0;
}
C++에서 문자열을 다루는 방법 중 하나인 string
1. C스타일로 string 객체를 초기화할 수 있다.
2. cin을 이용하여 string 객체에 키보드 입력을 저장할 수 있다.
3. cout을 사용하여 string 객체를 디스플레이할 수 있다.
4. 배열표기를 사용하여 string 객체에 저장되어 있는 개별적인 문자들에 접근할 수 있다. ↓
cout << str1[0] << endl; //p
문자열의 단점 : 배열을 다른 배열에 통째로 대입할 수 없다.
하지만 string에서는 가능함!
string str1;
string str2 = "panda";
string 사용방법
복합 데이터형인 string을 명시하고 사용하고자 하는 변수명을 명시한 이후에 값을 초기화하지 않거나,
" "쌍따옴표를 통해서 선언하고 싶은 값을 넣는다.
char와의 가장 큰 차이점
string은 배열의 사이즈를 지정해주지 않아도 됨.
string은 통째로 다른 배열에 대입할 수 있다.