我正在尝试使用小数点作为分隔符在 C 程序中分割实数,例如 1234.56 产生

(int)全_num = 1234(int)分数= 56

我有什么想法可以去做这件事吗?自从我和 C 一起闲逛以来已经有很长一段时间了,明白吗?:)

有帮助吗?

解决方案

void split( double num, int& whole_number, double& fraction) {
    fraction = modf(num, &whole_number);
}

此工作,因为MODF取双重的整数部分和返回的小数部分。

其他提示

假设要分割的字符串。

strtok_r和你喜欢的字符串到NUM功能类似strtol

如果您正在处理实际的浮点数,而不是此类的字符串表示形式,则应该使用 modf 用于拆分整数部分和小数部分。

珀尔的 split 按正则表达式分割,因此要复制完整功能,您需要一个正则表达式库。对于一般的字符串分割,您可以使用 strtok, ,但因为它就地更改了字符串, strtok_r (在同一页上描述)建议改为。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top