입력 : 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

+ Recent posts