数字与字符串之间的相互转换(itoa atoi)

一、数字转换为字符串

C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,以下是几个常用函数:
itoa():将整型值转换为字符串
ltoa():将长整型值转换为字符串
ultoa():将无符号长整型值转换为字符串
gcvt():将浮点型数转换为字符串,取四舍五入
ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点
fcvt():指定位数为转换精度,其余同ecvt()
还可以使用sprintf系列函数把数字转换成字符串,在目前学习的过程中,对于数字转换为字符串,我只用过 itoa,所以下面我重点介绍一下itoa。

C++库里面定义格式为:
char * itoa ( int value, char * str, int base );
value: 要转换的字符
str: 字符串数组
base: 按照几进制的格式进行转换
返回值: 是一个指向结果以Null结尾的字符串指针
下面用一段代码来实现itoa

int main()
{ 
	int num_int = 111;
    char str[30];
    itoa(num_int, str, 10);  //把整数num_int转成字符串str
    printf("str %s\n", str);
	system("pause");
	return 0;
}

输出结果为:
str :111
二、字符串转换成数字

与上节数字转换为字符串类似,C/C++语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)。以下列举了各函数的方法及其说明。
atof():将字符串转换为双精度浮点型值。
atoi():将字符串转换为整型值。
atol():将字符串转换为长整型值。
strtod():将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字。 strtol():将字符串转换为长整值,并报告不能被转换的所有剩余数字。
strtoul():将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字。

同样,在学习的过程中,只使用过atoi,所以下面重点介绍一下atoi的使用。
在C++标准库中,atoi的定义格式为:
int atoi (const char * str);
str:要转换的字符串
返回值:是一个整型
下面用一段代码来实现atoi

int main()
{
     int num_int;
     char str[30] = "436";         //将要被转换为整型的字符串
     num_int = atoi(str);          //转换为整型值
     printf("num_int: %d\n", num_int);
	 system("pause");
	 return 0;
}

输出结果:
在这里插入图片描述
更详细的模拟实现请参见大佬博客:http://blog.sina.com.cn/s/blog_4c8a2a870100qgq7.html

你可能感兴趣的:(C++)