Can I fly high in the Sky?

Never say never.

导航

c++中的字符串与数字相互转换

Posted on 2015-08-27 12:42  lsr_flying  阅读(450)  评论(0编辑  收藏  举报

简单方法:

使用提供的stringstream类完成操作,该类位于<sstream>头文件中。

#include <sstream>
#include <string>

//数字转字符串
string num2str(int i)
{
stringstream ss;
ss<<i;
return ss.str(); 
}

//字符串转数字
int str2num(string s)
{
int num;
stringstream ss(s);
ss>>num;
return num;
}

缺点是处理大量数据转换速度慢。

 

二)比较有效的方法

使用C library中的sprintf,scanf。

头文件:#include<stdio.h>

用sprintf函数将数字输出到一个字符缓冲区中,从而进行转换。

#include<iostream>
#include<string>

using namespace std;

string num2str(int a)
{
    char c[100];
    sprintf(c,"%d",a);
    string s(c);
    return s;
}

int str2num(string s)
{
    int i;
    char str[100];
    strcpy(str,s.c_str());
    sscanf(str,"%d",&i);
    return i;
}

int main()
{
    int a;
    cin>>a;
    string s=num2str(a);
    cout<<s<<endl;

    string sd;
    cin>>sd;
    int i=str2num(sd);
    cout<<2*i<<endl;

}