long int strtol(const char *str, char **endptr, int base);str:要转换的字符串。endptr:指向末尾的">

c语言怎么读入字符串中的数字

来源:这里教程网 时间:2026-02-21 16:48:40 作者:

C 语言中如何读取字符串中的数字

在 C 语言中,从字符串中读取数字的常用方法有:

1. strtol() 函数

该函数将字符串转换为长整型数字。语法如下:

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

<code class="c">long int strtol(const char *str, char **endptr, int base);</code>
str
:要转换的字符串。
endptr
:指向末尾的指针,该指针将指向字符串中第一个不能转换为数字的字符。
base
:数字的基数,可以是 0(自动检测基数)、10(十进制)、8(八进制)、16(十六进制)。

示例:

<code class="c">char str[] = "1234";
long int num;
num = strtol(str, NULL, 10);
printf("数字为:%ld\n", num);</code>

2. sscanf() 函数

该函数从字符串中读取数据并将其存储在指定的变量中。语法如下:

<code class="c">int sscanf(const char *str, const char *format, ...);</code>
str
:要读取的字符串。
format
:转换说明符,指定如何格式化输入。
...
:指向变量的指针,这些变量将存储从字符串中读取的数据。

示例:

<code class="c">char str[] = "1234";
int num;
sscanf(str, "%d", &num);
printf("数字为:%d\n", num);</code>

3. 手动转换

对于简单的字符串,也可以手动进行转换。例如,可以将每个字符减去 '0' 来转换为数字。

示例:

<code class="c">char str[] = "1234";
int num = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
  num += (str[i] - '0') * pow(10, len - i - 1);
}
printf("数字为:%d\n", num);</code>

相关推荐