字符串与数字之间的转换

5 篇文章 1 订阅

参考以下博客
c++ 数字与字符串的相互转换
C语言字符串和数字转换函数大全
C++中数字与字符串之间的转换

感觉比较常用的,一个是自带的函数把字符串转成数字,另一个是c++把数字转换成字符串,如果大佬有更好的方法,还请指点

–>atof(将字符串转换成浮点型数)
–>atoi(将字符串转换成整型数)
–>atol(将字符串转换成长整数数)

  1. atof(将字符串转换成浮点型数)

表头文件: #include <stdlib.h>
定义函数: double atof(const char nptr);
函数说明: atof()会扫描参数nptr字符串,跳过前面的空格字符,直到>遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
(’/0’)才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值: 返回转换后的浮点型数。
附加说明: atof()与使用strtod(nptr,(char
*)NULL)结果相同。

/* 将字符串a 与字符串b转换成数字后相加*/  
#include<stdlib.h>  
void main()  
{  
   char *a = "-100.23";  
   char *b = "200e-2";  
   float c;  
   c = atof(a) + atof(b);  
   printf("c = %.2f/n", c);  
   /*
	运行结果 c = -98.23
   */
}   
  1. atoi(将字符串转换成整型数)

表头文件: #include<stdlib.h>
定义函数: int atoi(const char nptr);
函数说明: atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
(’/0’)才结束转换,并将结果返回。
返回值: 返回转换后的整型数。
附加说明: atoi()与使用strtol(nptr,(char
*)NULL,10);结果相同。

/* 将字符串a 与字符串b转换成数字后相加*/  
#include<stdlib.h>  
void mian()  
{  
   char a[] = "-100";  
   char b[] = "456";  
   int c;  
   c = atoi(a) + atoi(b);  
   printf("c = %d/n",c);  
   /*
   运行结果 c = 356
   */
}  

3、atol(将字符串转换成长整型数)

表头文件: #include<stdlib.h>
定义函数: long atol(const char nptr);
函数说明: atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
(’/0’)才结束转换,并将结果返回。
返回值: 返回转换后的长整型数。
附加说明: atol()与使用strtol(nptr,(char
*)NULL,10);结果相同。

/*将字符串a与字符串b转换成数字后相加*/  
#include<stdlib.h>  
void main()  
   char a[] ="1000000000";  
   char b[] = "234567890";  
   long c;  
   c = atol(a) + atol(b);  
   printf("c = %d/n", c);  
    /*
   运行结果 c = 1234567890
   */
}  

c++常用的 数字转字符串

#include <string>
#include <sstream>

int main(){
    double a = 123.32;
    string res;
    stringstream ss;
    ss << a;
    ss >> res;//或者 res = ss.str();
    cout << res << endl;//或者printf("%s",res.c_str());
    return 0;
}

/**对字符数组同样适用**/
int main()
{
    int a = 110;
    char res[20];
    stringstream ss;
    ss << a;
    ss >> res;
    printf("%s",res);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值