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

首先推荐用用C++的stringstream。 
主要原因是操作简单。

数字转字符串,int float类型 同理

#include <string>
#include <sstream>

int main(){
    double a = 123.32;
    string res;
    stringstream ss;
    ss << a;
    ss >> res;//或者 res = ss.str();
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

字符串转数字,int float类型 同理

int main(){
    string a = "123.32";
    double res;
    stringstream ss;
    ss << a;
    ss >> res;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

上面方法的优点就是使用简单方便,确定可能会相对别的方法来说慢一点,但是一般少量的数据可以忽略该因素。


c++中atoi函数

1、atoi函数把字符串转换成整型数。其含义是ASCII to integer 的缩写。
 

2、函数说明
1)简介编辑C语言库函数名
atoi
原型:
int atoi(const char *nptr);
UNICODE
_wtoi()
2)函数说明编辑参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零,
所需包含头文件: #include <stdlib.h>

程序例:
1)
1
2
3
4
5
6
7
8
9
10
#include <stdlib.h>
#include <stdio.h>
int  main( void )
{
   float  n;
   char  *str =  "12345.67" ;
   n =  atoi (str);
   printf ( "string = %s integer = %f\n" , str, n);
   return  0;
}
执行结果:
string = 12345.67 integer = 12345.000000
2)
1
2
3
4
5
6
7
8
9
10
11
#include <stdlib.h>
#include <stdio.h>
int  main()
{
   char  a[] =  "-100"  ;
   char  b[] =  "123"  ;
   int  c ;
   c =  atoi ( a ) +  atoi ( b ) ;
   printf ( "c = %d\n" , c) ;
   return  0;
}
执行结果:
c = 23
简单的实现atoi函数C语言 源代码
1
2
3
4
5
6
7
8
9
10
#include <ctype.h>
int  my_atoi( const  char * p){
   assert (p != NULL);
   bool  neg_flag =  false ; // 符号标记
   int  res = 0; // 结果
   if (p[0] ==  '+'  || p[0] ==  '-' )
     neg_flag = (*p++ !=  '+' );
   while ( isdigit (*p)) res = res*10 + (*p++ -  '0' );
   return  neg_flag ?0 -res : res;
}
 注:string类型转int的话,要先把string转成char形数组形式调用c_str()函数;
       string s=“123456”;
      int num =atoi(s.c_str());
(改编自百度百科)

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值