将字符转换为数字:直接转换:使用 atoi()/strtol() 函数,指定相应的进制(如 atoi("123")、strtol("123", NULL, 10))。间接转换 - ASCII 值:从字符的 ASCII 值减去 '0'(如 '5' - '0' 转换为 5)。间接转换 - sscanf():使用 sscanf() 从字符串中读取数字(如 sscanf("123", "%d", &num))。
如何在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);
特殊情况
示例
#include <stdio.h> #include <stdlib.h> #include <ctype.h> int main() { char str[] = "12345"; // 直接转换 int num1 = atoi(str); printf("num1 (atoi): %d\n", num1); // 间接转换 (ASCII) int num2 = str[0] - '0'; printf("num2 (ASCII): %d\n", num2); // 间接转换 (sscanf) int num3; sscanf(str, "%d", &num3); printf("num3 (sscanf): %d\n", num3); return 0; }
输出:
num1 (atoi): 12345 num2 (ASCII): 1 num3 (sscanf): 12345
以上就是c语言如何把字符转换成数字的详细内容,更多请关注php中文网其它相关文章!
C语言怎么学习?C语言怎么入门?C语言在哪学?C语言怎么学才快?不用担心,这里为大家提供了C语言速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号