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

C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型、长整型、浮点型等)的数字。以下是用atoi()函数将字符串转换为整数的一个例子:

# include <stdio. h>
# include <stdlib. h>
void main (void) ;
void main (void)
{
    int num;
    char * str = "100";
    num = atoi(str);
    printf("The string ‘str‘ is %s and the number ‘num‘ is %d. \n",
                   str, num);
}
  
atoi()函数只有一个参数,即要转换为数字的字符串。atoi()函数的返回值就是转换所得的整型值。

下列函数可以将字符串转换为数字:
------------------------------------------------------------------------
    函数名    作  用
------------------------------------------------------------------------
 atof()     将字符串转换为双精度浮点型值
 atoi()     将字符串转换为整型值
 atol()     将字符串转换为长整型值
 strtod()   将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字
 strtol()   将字符串转换为长整值,并报告不能被转换的所有剩余数字
 strtoul()  将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字
------------------------------------------------------------------------  
  
将字符串转换为数字时可能会导致溢出,如果你使用的是strtoul()这样的函数,你就能检查这种溢出错误。请看下例:  
# include <stdio. h>
# include <stdlib. h>
# include <limits. h>
void main(void);
void main (void)
{
    char* str = "1234567891011121314151617181920" ;
    unsigned long num;
    char * leftover;
    num = strtoul(str, &leftover, 10);
    printf("Original string: %s\n",str);
    printf("Converted number: %1u\n" , num);
    printf("Leftover characters: %s\n" , leftover);
}

在上例中,要转换的字符串太长,超出了无符号长整型值的取值范围,因此,strtoul()函数将返回ULONG_MAX(4294967295),并使。char leftover指向字符串中导致溢出的那部分字符;同时,strtoul()函数还将全局变量errno赋值为ERANGE,以通知函数的调用者发生了溢出错误。函数strtod()和strtol()处理溢出错误的方式和函数strtoul()完全相同,你可以从编译程序文档中进一步了解这三个函数的有关细节。

时间: 2025-01-01 02:56:41

C语言中将字符串转换为数字的方法的相关文章

关于字符串转换为数字的几点注意

字符串转换为数字的方法: ①Number():空字符串为0,对象先调用valueOf(),如果返回NaN,调用toString()方法 ②parseInt():空字符串为NaN,可以进行其他进制到十进制的转换 ③parseFloat():只识别十进制,但是可以将一个科学计数法表示的数字表示成整数 勿忘:十进制转换其他进制的方法:num.toString(进制数)====>字符串 null和undefined没有这个方法====>String(); 转换为字符串的另一种方法:“”+要转换的

js字符串转换为数字 总结

a. 将一个字符串转换为数字的一种缺少些技巧但是很清楚明白的方法就是:把Number()构造函数作为一个函数来调用:  var number = Number(string_value); b. parseInt()只截取整数,如果一个字符串以"0x"或"0X"开头,parseInt()将其解析成为一个十六进制的数字,parseInt()甚至可以接受一个参数来指定要解析的数字的基数,合法的值在2到36之间 parseInt("3 blind mice&qu

javascript如何将字符串转换为数字

javascript如何将字符串转换为数字:在编码中有可能用到将字符串转换为数字,尤其是在涉及数字计算的环境,下面就简单介绍一下如何进行转换.1).parseInt()函数进行转换:此函数可以解析一个字符串,并返回一个整数.代码实例如下: parseInt("12px");//返回12 parseInt("0xA");//返回10 parseInt("2.3");//返回2 parseInt("blue");//返回NaN 更

剑指Offer解题报告(Java版)——字符串转换为数字 49

? ? 引言 ? ? STOI是很常见的一道题,leetcode上也有,字符串转换为数字一般都会有现成的函数去实现这样的功能,但有时候需要我们理解其中的具体实现,因为虽然是个很常见的问题,但实际上需要考虑的问题还是很多的,尤其是corner case的处理,而这类问题一般要考虑两点:一点是符号,另外一点是越界 ? ? 分析问题 ? ? 如果字符串前面有空格怎么办,一般来说中间是没有空格的,但是前后可能有空格,所以我们首先需要去掉多余的空格字符,用到trim函数 ? ? 然后就是字符串中有可能第一

Javascript学习笔记:2种字符串转换为数字的方式

①使用parseInt/parseFloat(在ECMAScript6中是Number.parseInt/Number.parseFloat) 1 console.log(parseInt('a10'));//NaN 2 console.log(parseInt('1a0'));//1 3 console.log(parseInt('10a'));//10 4 console.log(parseInt('10'));//10 5 6 console.log(parseFloat('a10.1')

django中将model转换为dict的方法

django中将model转换为dict的方法 from django.forms.models import model_to_dict from user.model import userprofile model_to_dict(userprofile.model.get(id=100)) d3 = {'username': 'zz_yy', 'password': 'zyjzyj'} a = UserProfile() a.username = 'zz__e' a.password =

把字符串转换为数字

C当中有一些函数专门用于把字符串形式转换成数值形式. printf()函数和sprintf()函数 -->通过转换说明吧数字从数字形式转换为字符串形式: scanf()函数把输入字符串转换为数值形式: 应用场景: 编写程序需要使用数值命令形参,但是命令形参被读取为字符串.要使用数值必须先把字符串转换为数字. atoi()函数: int atoi(char *str); 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int mai

字符串转为数字的方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script>

使用SimpleDateFormat注意的地方和在jsp中将字符串转换为日期

一.使用SimpleDateFormat注意的地方 SimpleDateFormat将字符串转换为日期类型时,转换的格式必须和字符串的格式一样,否则就会报错,比如:将字符串"20150825195057"转化为日期类型,转换格式必须是 "yyyyMMddHHmmss",如果是其他格式,将会报   java.text.ParseException: Unparseable date: "20150825195057"异常.那如果要将字符串转换成yy