怎么将字符串中的数字单独赋值给变量
时间: 2024-10-10 08:03:12 浏览: 49
在 C 语言中,如果你想要从字符串中提取数字并将其分别赋值给变量,你需要先确认字符串的格式,然后通常会使用循环配合字符处理函数。这里是一个基本的例子,假设字符串中的数字都是由数字字符组成,且没有任何分隔符:
```c
#include <stdio.h>
#include <ctype.h>
double convert_to_double(char *str, size_t len) {
double number = 0.0;
bool is_negative = false;
if (str[0] == '-') { // 检查是否为负数
is_negative = true;
str++; // 移动指针到第一个有效数字
}
for (size_t i = 0; i < len; i++) {
if (!isdigit(str[i])) break; // 遇到非数字字符则停止
number *= 10; // 将当前位乘以10以便添加下一个数字
number += (str[i] - '0'); // 加上对应的数字值
}
// 负数前加上负号
if (is_negative) number = -number;
return number;
}
int main() {
char str[] = "123.45";
size_t len = strlen(str);
double num = convert_to_double(str, len);
printf("Number: %.2f\n", num); // 输出结果,如:Number: 123.45
return 0;
}
```
这个 `convert_to_double` 函数会从字符串 `str` 开始,逐字符检查,如果是数字就加入到计算中,遇到非数字字符就停止。如果字符串的第一个字符是 `-`,它还会记录这是一个负数。最后返回转换后的双精度数值。
阅读全文