string中数字字符转int整型与int整型增入string型中

 

string中数字字符转int整型与int整型增入string型中(纯运用)

方法列前:

string型转int型:

  string s("123");

  int a = s[0] - '0';

int型增入string型中:

  int a; string s;

  s.push_back('0' + a);

注意:一次只能单字符转换,string中数字字符可以直接加入string中。

亦可以用<sstream>中的stringstream直接转换:

示例如下:

 

#include <iostream>
#include <string> 
#include <sstream>
using namespace std;
int main()
{
    string str;
    int n;
    cin >> str;
    stringstream ss(str);
    ss >> n;
    cout << n;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
}

 

可以整字符转换。

 

下面为单字符推进过程:

如:

int main()
{
    string a("123456");
    int sum = 0;
    sum += a[0];
    cout << sum;    
}

输出为:49。即1在ASCII码中的位置:49。

故减去ASCII码中0的位置,即可将之转换为具体数值,即:

int main()
{
    string a("123456");
    int sum = 0;
    sum += a[0] - '0';
    cout << sum;    
}

输出为:1。

简单记忆为:string类型中数字字符转换为int,即int型 += string一个数字字符 - '0';

注意:string中的一个数字字符即string s中如s[0]一个个转换。

再如:

int main()
{
    int sum = 1;
    string b;
    b += sum;
    cout << b;    
}

输出为乱码。

int main()
{
    int sum = 1;
    string b;
    b += '0' + sum;//b.push_back('0' + sum)
    cout << b;    
}

输出为:1。

可用于string类型末尾插入数字。

注意:只能个位转换,即0-9转换,故遇到长数值需求模(%)再一位一位在末尾增添。

posted on 2022-01-10 23:14  我欲  阅读(407)  评论(0)    收藏  举报