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> 