728x90
[목적]
주민등록번호를 입력 받은 후 나이와 성별을 출력한다.
뒷자리의 첫 번째 수가 1이면 1900년대생 남자, 2이면 1900년대생 여자, 3이면 2000년대생 남자, 4이면 2000년대생 여자이다.
[입력 예제 1]
780316-2376152
[출력 예제 1]
42 W
[입력 예제 2]
061102-3575393
[출력 예제 2]
14 M
[코드]
#include <iostream>
#include <string> //substr
#include <stdlib.h> //atoi
using namespace std;
int main(void) {
string man;
cin >> man;
string cut = man.substr(0,2);
int age = atoi(cut.c_str()); //stdlib.h
cut = man.substr(7,1);
int sex = atoi(cut.c_str());
if(sex==2 || sex ==1) cout << 120-age;
else cout << 20-age;
if(sex==2 || sex == 4)
cout << " W";
else
cout << " M";
return 0;
}
[실행 결과]


[Error] 'stoi' was not declared in this scope
C++에서 stoi() 함수가 실행이 안 될 때 해결법
C++ 프로그래밍 언어를 이용해서 각종 프로그램을 작성하곤 합니다. 최근에 많이 사용되고 있는 C++11과 ...
blog.naver.com
Dev c++의 컴파일러상의 문제로 stoi를 사용할 수 없어 atoi를 사용한다.
-
int atoi (const char * str)
헤더파일 : <stdlib.h>
설명 : C style의 문자열을 입력받아서 int (숫자) 타입으로 변환하여 리턴한다.
-
std::string c_str()
반환형이 char * 이므로, 해당하는 string의 첫번재 문자의 주소값(포인터)를 반환한다.
728x90
반응형
'문제풀이 > C++' 카테고리의 다른 글
[C++] 영어단어 복구 (0) | 2020.12.27 |
---|---|
[C++] 숫자만 추출 (0) | 2020.12.27 |
[C++] 나이 차이 (0) | 2020.12.27 |
[C++] 진약수의 합 (0) | 2020.12.26 |
[C++] 자연수의 합 (0) | 2020.12.26 |