gpt4 book ai didi

c - 字符串转换为数字 ( strtod ) 的问题

转载 作者:IT王子 更新时间:2023-10-29 00:38:46 26 4
gpt4 key购买 nike

我正在使用 strtod( ) 函数将环境变量提取为字符串,然后使用 strtod 将其更改为 double:

enter code here
char strEnv[32];
strncpy(strEnv, getenv("LT_LEAK_START"), 31);
// How to make sure before parsing that env LT_LEAK_START is indeed a number?
double d = strtod(strEnv, NULL);

现在我想确保用户输入的这个数字是一个数字而不是字符串或特殊字符。我怎样才能确定这一点?

代码片段会很有帮助。

提前致谢。

最佳答案

strtod 函数的第二个参数很有用。

char *err;
d = strtod(userinput, &err);
if (*err == 0) { /* very probably ok */ }
if (!isspace((unsigned char)*err)) { /* error */ }

编辑:添加示例

strtod 函数尝试将第一个参数的初始部分转换为 double 并在没有更多字符或存在不能用于生成 a 的字符时停止双。

input         result----------    ----------------------------"42foo"       will return 42              and leave err pointing to the "foo" (*err == 'f')"     4.5"    will return 4.5              and leave err pointing to the empty string (*err == 0)"42         " will return 42              and leave `err` pointing to the spaces (*err == ' ')

关于c - 字符串转换为数字 ( strtod ) 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5580975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com