C语言字符串转数值

文章目录


本问已整合到整合到 C语言标准库深度解读

stdlib

stdlib中定义了6个将字符串转为数值的函数,分别用于浮点、整型、长整型和无符号长整型,为了书写上的便捷,下文中令

#define cSTR const char *str
#define END char **endptr

其中,str为一个字符串,endptr则为字符串指针,则stdlib.h中的字符串转换函数如下表所示

返回值类型简单高级
doubleatof(cSTR)strtod(cSTR, END)
intatoi(cSTR)
long intatol(cSTR)strtol(cSTR, END, int base)
unsigned long intstrtoul(cSTR, END, int base)

其中,若endptr不为空,则会保存转换数值之后的指针位置;base介于2和36(包含)之间,表示转换整型的基数。

此外,stdlib中还有4个用于不同宽度的字符数组之间的转化函数,主要是char类型和wchar_t之间的转化。

在C++中,除了char作为字符类型的保留字之外,还有三个不同宽度的字符类型作为表达式:wchar_t, char16_t, char32_t;到了C++11,又新增了char16_tchar32_t

在C语言中,尽管只有一个char是保留字,单并不妨碍定义其他数据类型,wchar_t被定义在stddef.h中,本质上是一个int。字符串和wchar_t之间的转换函数包括

  • size_t mbstowcs(wchar_t *pwcs, cSTR, size_t n):str转为pwcs
  • size_t wcstombs(char *str, const wchar_t *pwcs, size_t n):pwcs转为str
  • int wctomb(char *str, wchar_t wchar):wchar转为str
  • int mbtowc(whcar_t *pwc, cSTR, size_t n):str转为pwc

此外,stdlib.h中还定义了一个计算字符串长度的函数mblen,和string.h中的strlen的区别在于,mblen中多了一个最大字节数的参数n

int mblen(cSTR, size_t n)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微小冷

请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值