데일리 codeup/문자열
문자열을 정수로, 정수를 문자열로 변환하기_220716
hayo_su
2022. 7. 16. 15:42
문자열을 정수로 변환하기
string
헤더의 stoi
함수로 문자열을 감싸주면 문자열을 정수로(string to int) 변환할 수 있다.
붙여서 합하기
숫자로만 이루어진 문자열 A와 B가 주어집니다. A와 B를 그대로 이어붙인 AB와 순서를 바꿔 이어붙인 BA의 합을 구하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string a,b;
cin >> a >> b;
cout<< stoi(a+b) + stoi(b+a);
return 0;
}
정수만 추출하기
공백을 포함하지 않는 두 개의 문자열이 주어지면 앞에서부터 정수 이외의 문자가 나오기 전까지의 부분에서 정수로 변환 가능한 부분을 변환한 후 두 수의 합을 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main(){
string s,t;
cin >> s >> t;
for(int i=0;i<s.length();i++){
if(isdigit(s[i]) == 0){
s = s.substr(0,i);
break;
}
}
for(int i=0;i<t.length();i++){
if(isdigit(t[i]) == 0){
t = t.substr(0,i);
break;
}
}
cout<< stoi(s)+ stoi(t);
return 0;
}
알파벳 지우기
알파벳과 숫자로 이루어진 문자열이 두 개 주어지면, 각 문자열에서 알파벳을 제외하고 남은 숫자부분을 차례대로 이어붙여 만든 수를 구하고, 두 문자열에서 구한 두 수의 합을 구하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main(){
string s,t;
string a,b;
cin >> s >> t;
for(int i=0;i<s.length();i++){
if(isdigit(s[i]) == 0) continue;
a += s[i];
}
for(int i=0;i<t.length();i++){
if(isdigit(t[i]) == 0) continue;
b += t[i];
}
cout<< stoi(a)+stoi(b);
return 0;
}
정수를 문자열로 변환하기
string
헤더의 to_string
함수
#include <iostream>
#include <string>
using namespace std;
int main() {
int a = 123;
string a_str;
a_str = to_string(a);
cout << a_str;
return 0;
}
두 수의 합과 1
두 정수가 주어지면 그 두 수의 합을 더한 뒤의 결과에 숫자 1이 몇 번 나오는지 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
string sum_val;
int s,t,cnt = 0;
cin >> s >> t;
sum_val = to_string(s+t);
for(int i=0;i<sum_val.length();i++){
if(sum_val[i]=='1') cnt++;
}
cout<< cnt;
return 0;
}
각 자리 숫자들의 합
정수 n이 주어지면 각 자리 숫자들의 합을 구해 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
int n, sum_val = 0;
cin >> n;
string s = to_string(n);
for(int i=0;i<s.length();i++){
sum_val += n%10;
n /= 10;
}
cout<<sum_val;
return 0;
}
합을 옆으로 밀어 출력
n개의 수가 주어질 때, 모든 수를 더한 값을 좌측으로 한 칸 민 결과를 출력하는 프로그램을 작성해보세요.
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,m,sum_val = 0;
cin >> n;
for(int i=0;i<n;i++){
cin >> m;
sum_val += m;
}
string s = to_string(sum_val);
cout<<s.substr(1,s.length()-1) + s[0];
return 0;
}