(1) 문자열을 정수로 변환하기
string 헤더의 stoi 함수로 문자열 -> 정수
#include <iostream>
#include <string>
using namespace std;
int main(){
string a="1234567";
int num = stoi(a)+1;
cout<<num<<endl;
return 0;
}
>> 1234568
(2) 정수를 문자열로 변환하기
string 헤더의 to_string 함수로 정수->문자열
#include <iostream>
#include <string>
using namespace std;
int main(){
int num = 234;
string number=to_string(num);
cout<<number<<endl;
return 0;
}
>> 문자열 234
(3) 대문자 소문자 변형
대문자 -> 소문자
1) 아스키코드 사용하는 법
1. 지금의 변수의 아스키코드를 구한다
2. 지금의 변수에서 -'A'(65)를 해준다
3. 그리고 +'a' 를 한다 (97)
예시)
char x = 'D';
x -> 68
x - 'A' : 68-65 = 3
x - 'A' + 'a' :3+97 = 100;
cout<<(char)(x-'A'+'a'); -> 'd'
(2) 헤더를 사용하는 법
#include <cctype>
1) tolower() : 특정 문자열의 모든 문자 -> 소문자
2) toupper() : 특정 문자열의 모든 문자 -> 대문자
string ans = "hello"
for(int i=0;i<ans.size();i++){
ans[i]+=toupper(ans[i]);
}
cout<<ans<<endl;
>> HELLO
대문자인지 소문자인지 구별하는 법
char x;
if ('A' <= x && x <= 'Z') {
cout << "Upper case";
}
#include <ctype.h>
isupper(),islower() 함수 사용해도 가능
#include <cctype>
isalpha()-> 알파벳인지 아닌지
isdigit()-> 숫자인지 아닌지
(4) 소숫점에 맞춰서 출력하기
cout<<fixed = 소수점 자리 표현을 고정한다
cout.precision(n) = 소수점 n째자리까지 값을 반올림
cout<<fixed;
double a = 33.567268;
cout.precision(4);
cout<<a<<endl;
>>33.5672
(5) 반올림 하는 법
#include <cmath>
round(변수)
#include <iostream>
#include <cmath>
using namespace std;
int main(){
double a;
cin>>a;
cout<<round(a*100)/100<<endl;
-> 둘째자리까지 살릴거니까.
}
(6) 다양한 입력방법
예를 들어 h:m을 입력 받고 싶다.
int h,m;
cin c;
cin>>h>>c>>m;
or
cin>>h;
cin.get(); -> 새로운 변수를 선언하지 않고 받기
cin>>m;
(7) 1~9의 숫자가 몇 번 나왔는가?
-> 1~9까지의 인덱스를 가진 배열을 만들고 초기화한 뒤에
숫자를 세면서, 각 배열에 +1을 해준다.
(8) 최댓값구하기
-> 최댓값을 넣을 변수의 초기값을 매우 작은 값으로 한다.
#include <climits> 의 INT_MIN;
-> 최댓값을 넣을 변수의 초기값을 첫 번째 원소로 한다.