C 删除结构变量中的特殊字符

C 删除结构变量中的特殊字符,c,C,what_if_var[0]。price(类型为char[10])的值为“$15555.665”。是否有必要从值中删除“$”(如“15555.665”)并将值转换为双精度?如果您总是知道'$'将是第一个字符,您可以尝试: double num = strtod (what_if_var[0].price + 1, NULL); 检查函数,将字符串转换为双。< /P>你也可以调用 Atfor()/,虽然有些上流社会认为不值得。谢谢克里斯…是否仍然可以将字符串转换为双精度。@jcrshankars

what_if_var[0]。price
(类型为
char[10]
)的值为“$15555.665”。是否有必要从值中删除“$”(如“15555.665”)并将值转换为双精度?

如果您总是知道
'$'
将是第一个字符,您可以尝试:

double num = strtod (what_if_var[0].price + 1, NULL);

检查函数,将字符串转换为双。< /P>你也可以调用<代码> Atfor()/<代码>,虽然有些上流社会认为不值得。谢谢克里斯…是否仍然可以将字符串转换为双精度。@jcrshankar

strtod()
代表“字符串转换为双精度”。这正是你要找的功能。对不起..克里斯。。经过一些计算后,我需要将值作为字符串复制到同一个结构变量中。。所以我需要将double转换为string。@jcrshankar我不明白你要的是什么。通常通过
sprintf()
将double转换为字符串;如果已经分配了空间,则复制字符串只需
strcpy()
。如果price是char[10],则值“$15555.665”是缓冲区溢出。“小心!”保罗接得好@jcrshankar nul终止符需要第11个字节。伟大的保罗。。我只是举个例子。