데일리 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;
}