随笔 - 6  文章 - 0  评论 - 0  阅读 - 814

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   我欲  阅读(375)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示