1.将字符串转换成浮点型数
表头文件#include <stdlib.h>
定义函数
double atof(const char *nptr);
函数说明
atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值
返回转换后的浮点型数。
2.将字符串转换成整型数
表头文件
#include<stdlib.h>
定义函数
int atoi(const char *nptr);
函数说明
atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。
返回值
返回转换后的整型数。
3.字符串转换成长整型数
表头文件
#include<stdlib.h>
定义函数
long atol(const char *nptr);
函数说明
atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。
返回值
返回转换后的长整型数。
4.浮点型数转换为字符串,取四舍五入
表头文件
#include<stdlib.h>
定义函数
char *gcvt(double number,size_t ndigits,char *buf);
函数说明
gcvt()用来将参数number转换成ASCII码字符串,参数ndigits表示显示的位数,在ndigits处取四舍五入。gcvt()与ecvt()和fcvt()不同的地方在于,gcvt()所转换后的字符串包含小数点或正负符号。若转换成功,转换后的字符串会放在参数buf指针所指的空间。
返回值
返回一字符串指针,此地址即为buf指针。
5. int 转 字符串
char *itoa( int value, char *string,int radix);
原型说明: value:欲转换的数据。 string:目标字符串的地址。 radix:转换后的进制数,可以是10进制、16进制等。
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int number = 12345;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
}
举例:
#include <iostream>
#include <stdlib.h>
using namespace std;
double str_to_double(char *str)
{
return atof(str);
}
int str_to_int(char *str)
{
return atoi(str);
}
int str_to_long(char *str)
{
return atol(str);
}
void double_to_str(double input, unsigned int n)
{
char str[128] = {'\0'};
gcvt(input, n, str);
cout<<str<<endl;
}
int main(void)
{
double temp=3.1415926;
cout<<str_to_double("-123.124")<<endl;
cout<<str_to_int("-123.124")<<endl;
cout<<str_to_long("1000000000")<<endl;
double_to_str(temp, 5);
return 0;
}