입력 : cin
cin.get()은 입력 버퍼에서 한글자씩 받아올 수 있기 때문에 공백을 포함한 문자(열)도 입력할 수 있다.
char ch;
ch = cin.get();
int alpha = 0;
int digit = 0;
int space = 0;
while (ch != '\n') {
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
++alpha;
else if (ch >= '0' && ch <= '9')
++digit;
else if (ch == ' ' || ch == '\t')
++space;
}
이런식으로 입력받은 문자열에서 숫자, 문자, 공백의 입력 개수를 셀 수 있다.
cin.getline()은 줄 단위로 입력받는다.
char sentense[1000];
cin.getline(sentense, 1000);
cout << sentense;
개행 문자를 입력받거나 지정한 사이즈를 초과하기 전까지 입력 버퍼의 데이터를 가져온다.
cin.get에 비해 훨씬 더 간결해졌다.
만약 세번째 인수로 특정 문자를 넘겨주면 개행 문자가 아닌 해당 문자가 입력 종료의 조건이 된다.
string : 문자열 압축하기
string compressString(const string& str) {
const int n = str.length();
string output;
for (int i = 0; i < n; ++i) {
int count = 1;
while (i < n-1 && str[i] == str[i+1]) {
++count;
++i;
}
output += str[i];
output += to_string(count);
}
if (output.length() > str.length())
return str;
return output;
}
문자열 aabbbccc를 a2b3c3으로 압축한다.
count가 1인 경우 count를 추가해주지 않으면 단일 문자만 존재하는 경우의 문제도 처리가 가능하다.
'이론 > 자료구조&알고리즘' 카테고리의 다른 글
Vector Data Structure (0) | 2023.02.08 |
---|---|
Pointers & Dynamic Memory (0) | 2023.02.07 |
2D Arrays (0) | 2023.02.07 |
Basic Sorting Algorithms (0) | 2023.02.03 |
Arrays (0) | 2023.02.02 |