c语言字符串转数字

admin 45 0

C语言中字符串转数字的方法

在C语言中,将字符串转换为数字是一个常见的任务,下面我将介绍几种简单易懂的方法来实现这一功能。

方法一:使用标准库函数atoi()

atoi()函数是C语言标准库中的一个函数,它可以将字符串转换为整数,以下是使用atoi()函数的示例代码:

```c

#include

#include

int main() {

char str[] = "12345";

int num = atoi(str);

printf("The integer is: %d\n", num);

return 0;

}

在上面的代码中,我们首先包含了stdio.h和stdlib.h头文件,然后定义了一个字符串数组str,并将其初始化为"12345"。接下来,我们使用atoi()函数将字符串转换为整数,并将结果存储在变量num中。最后,我们使用printf()函数输出转换后的整数。

方法二:使用标准库函数strtol()

strtol()函数是C语言标准库中的另一个函数,它可以将字符串转换为长整数。以下是使用strtol()函数的示例代码:

c

#include

char str[] = "12345678901234567890";

char *endptr;

long num = strtol(str, &endptr, 10);

if (errno == ERANGE) {

printf("Overflow occurred: the number is outside the range of a long integer.\n");

} else if (*endptr != '\0') {

printf("Conversion error occurred: %s\n", endptr);

} else {

printf("The long integer is: %ld\n", num);

}

```

在上面的代码中,我们首先包含了stdio.h、stdlib.h和errno.h头文件,然后定义了一个字符串数组str,并将其初始化为"12345678901234567890",接下来,我们使用strtol()函数将字符串转换为长整数,并将结果存储在变量num中,我们还定义了一个指向endptr的指针,用于存储转换结束时的指针位置,我们检查了是否发生了溢出或转换错误,并输出了转换后的长整数,请注意,在使用strtol()函数时,我们需要检查errno变量以确定是否发生了溢出或转换错误。