📅  最后修改于: 2023-12-03 15:29:41.268000             🧑  作者: Mango
在C/C++语言中,用于将字符串转换成数字的函数有很多,其中就包括了atol()、atoll()和atof()函数。这三个函数都是stdlib.h库中的函数,分别用于将字符串转换成长整型、长长整型和浮点型数据。
atol()
函数用于将字符串转换为长整型,其函数原型如下:
long atol(const char* str)
该函数会将参数 str
所指向的字符串转换为长整型数(类型为 long
)。如果不能进行有效的转换,则返回 0
。
下面是一个例子:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[] = "12";
char str2[] = "1234567";
char str3[] = "-98655";
char str4[] = "ab123";
long num1 = atol(str1);
long num2 = atol(str2);
long num3 = atol(str3);
long num4 = atol(str4);
printf("%ld\n", num1); // 输出: 12
printf("%ld\n", num2); // 输出: 1234567
printf("%ld\n", num3); // 输出: -98655
printf("%ld\n", num4); // 输出: 0
return 0;
}
atoll()
函数用于将字符串转换为长长整型,其函数原型如下:
long long atoll(const char* str)
该函数会将参数 str
所指向的字符串转换为长长整型数(类型为 long long
)。如果不能进行有效的转换,则返回 0
。
下面是一个例子:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[] = "12";
char str2[] = "12345678901234567";
char str3[] = "-98655678901234";
char str4[] = "ab123";
long long num1 = atoll(str1);
long long num2 = atoll(str2);
long long num3 = atoll(str3);
long long num4 = atoll(str4);
printf("%lld\n", num1); // 输出: 12
printf("%lld\n", num2); // 输出: 12345678901234567
printf("%lld\n", num3); // 输出: -98655678901234
printf("%lld\n", num4); // 输出: 0
return 0;
}
atof()
函数用于将字符串转换为浮点型,其函数原型如下:
double atof(const char* str)
该函数会将参数 str
所指向的字符串转换为浮点型数(类型为 double
)。如果不能进行有效的转换,则返回 0.0
。
下面是一个例子:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[] = "12.5";
char str2[] = "1234.567";
char str3[] = "-98.655";
char str4[] = "ab123.456";
double num1 = atof(str1);
double num2 = atof(str2);
double num3 = atof(str3);
double num4 = atof(str4);
printf("%f\n", num1); // 输出: 12.500000
printf("%f\n", num2); // 输出: 1234.567000
printf("%f\n", num3); // 输出: -98.655000
printf("%f\n", num4); // 输出: 0.000000
return 0;
}
以上就是C/C++中的 atol()
、atoll()
和 atof()
函数的简单介绍。记得在使用这些函数时,需要包含 stdlib.h 头文件。如果你不确定函数能否成功转换你的字符串,最好先进行一次检查以避免程序崩溃。