데일리 codeup/입출력

특정 문자를 사이에 두고 2개의 값을 입력_220701

hayo_su 2022. 7. 1. 15:53

두 수가 공백이 아닌 특정 문자를 사이에 두고 입력으로 들어는 경우에는, cin 을 이용해 그 문자를 문자형 변수에 입력받아 무시하고 두개의 수를 받을 수 있다.

예제

#include <iostream>  
using namespace std;  

int main() {  

int a, b;  
char c;  

cin >> a >> c >> b;  
cout << a << endl << b;  

return 0;  

}

출력결과

>> 50:60

50
60

이때 중간 문자를 무시하는 것을 새로운 변수를 선언하지 않고 cin.get()을 이용하여 해결할 수 있다.

#include <iostream>
using namespace std;

int main() {

    int a, b;

    cin >> a;
    cin.get();
    cin >> b;
    cout << a << endl << b;

    return 0;

}

출력결과

>> 50:60

50
60

1시간 뒤 시간 출력

h:m 모양의 시간과 분으로 이루어져 있는 시간을 입력받아 1시간 뒤의 시간을 출력하는 프로그램을 작성해보세요

#include <iostream>
using namespace std;
int main(){
    int a,b;
    char m;
    cin >> a >> m >> b;
    cout << a + 1 << m << b;
    return 0;
}

입력

22:1

출력 결과

23:1

특정 문자를 사이에 두고 3개 이상의 값을 입력

- 문자를 사이에 두고 3개의 수를 입력받아 출력하는 코드는 다음과 같다. -는 입력받아 쓰일 곳이 없기 때문에, 하나의 문자형 변수에 받아줄 수 있다.

예제

#include <iostream>
using namespace std;

int main() {

    int a, b, c;
    char d;

    cin >> a >> d >> b >> d >> c;
    cout << a << endl << b << endl << c;

    return 0;

}

출력결과

>> 50-60-70

50
60
70

마찬가지로 cin.get() 을 이용하여 받을 수도 있다.

#include <iostream>
using namespace std;

int main() {

    int a, b, c;
    char d;

    cin >> a;
    cin.get();
    cin >> b;
    cin.get();
    cin >> c;
    cout << a << endl << b << endl << c;

    return 0;

}

날짜 변경하여 출력 2

mm-dd-yyyy 모양의 날짜 정보를 입력받아 yyyy.mm.dd 형식으로 출력하는 프로그램을 작성해보세요.

#include<iostream>
using namespace std;

int main(){
    int m,d,y;
    char g;
    cin >> m >> g >> d >> g >> y;
    cout << y << '.' << m << '.' <<d;
    return 0;
}

입력

2-28-1

출력 결과

1.2.28

입력받아 출력2

OOOOOO-OOOOOOO 형식으로 이루어져 있는 주민번호를 입력받아, -를 제외하여 출력하는 프로그램을 작성해보세요.

#include <iostream>
using namespace std;
int main(){
    int a,b;
    cin >> a;
    cin.get();
    cin >> b;
    cout << a << b;
    return 0;
}

입력

940312-1082836

출력 결과

9403121082836

날짜 변경하여 출력

yyyy.mm.dd 모양의 날짜 정보를 입력받아 mm-dd-yyyy 형식으로 출력하는 프로그램을 작성해보세요.

#include <iostream>
using namespace std;
int main(){
    int y,m,d;
    char dot;
    cin >> y >> dot >> m >> dot >> d;
    dot = '-';
    cout << m << dot << d << dot << y;
    return 0;
}

전화번호 바꾸기

010-xxxx-yyyy 형태의 전화번호를 입력받아 앞 4자리와 뒤 4자리를 바꾸어 출력하는 프로그램을 작성해보세요.

#include <iostream>
using namespace std;
int main(){
    int x, y, z;
    char dash;
    cin >> z >> dash >> x >> dash >> y;
    cout << "010" << dash << y << dash << x;
    return 0;
}

변수 z에서 010을 입력 받으면 int로 변환하여 10으로 저장된다.
이를 프린트하면 앞자리 0가 생략되기 때문에 추가적인 조치가 필요하다.

입력

010-8765-4321

출력 결과

010-4321-8765