c语言如何把字符转换成数字

将字符转换为数字:直接转换:使用 atoi()/strtol() 函数,指定相应的进制(如 atoi(“123”)、strtol(“123”, NULL, 10))。间接转换 – ASCII 值:从字符的 ASCII 值减去 ‘0’(如 ‘5’ – ‘0’ 转换为 5)。间接转换 – sscanf():使用 sscanf() 从字符串中读取数字(如 sscanf(“123”, “%d”, &num))。

c语言如何把字符转换成数字

如何在C语言中将字符转换为数字

直接转换

使用 atoi() 函数:
这个函数将一个字符串转换为一个整型数字。例如:

int num = atoi("123");

使用 strtol() 函数:
这个函数将一个字符串转换为一个长整型数字。它可以指定进制(例如二进制、八进制或十进制)。例如:

立即学习“C语言免费学习笔记(深入)”;

long int num = strtol("123", NULL, 10); // 10 表示十进制

间接转换

使用 ASCII 值:
每个字符都有一个对应的 ASCII 值。可以减去 ASCII 值 '0'(48)将其转换为数字。例如:

int num = '5' - '0'; // 5

使用 sscanf() 函数:
这个函数从一个字符串中读取格式化的数据。可以将其用于读取数字。例如:

int num;sscanf("123", "%d", &num);

特殊情况

空格和换行符:在解析数字时,需要跳过空格和换行符。可以使用 isspace() 函数进行检查。非数字字符:如果字符串中包含非数字字符,转换可能会失败。需要处理这种情况并返回错误。

示例

#include #include #include int main() {    char str[] = "12345";    // 直接转换    int num1 = atoi(str);    printf("num1 (atoi): %dn", num1);    // 间接转换 (ASCII)    int num2 = str[0] - '0';    printf("num2 (ASCII): %dn", num2);    // 间接转换 (sscanf)    int num3;    sscanf(str, "%d", &num3);    printf("num3 (sscanf): %dn", num3);    return 0;}

输出:

num1 (atoi): 12345num2 (ASCII): 1num3 (sscanf): 12345

以上就是c语言如何把字符转换成数字的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1437650.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 13:49:53
下一篇 2025年12月17日 13:50:11

相关推荐

发表回复

登录后才能评论
关注微信