有没有相当于 Perls 的东西? C 中的 split() 函数?

发布于 2024-07-24 07:03:39 字数 163 浏览 6 评论 0原文

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

(int) Whole_num = 1234 (int)fraction = 56

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

I'm trying to split real numbers in a C program using the decimal point as the delimter such that such that say, 1234.56 yields

(int) whole_num = 1234
(int) fraction = 56

Any ideas how I can go about doing this? Its been a loooong while since I mucked around with C, see? :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

眼藏柔 2024-07-31 07:03:40

假设你想分割一个字符串。

strtok_r 和您最喜欢的 string-to-num 函数,如 strtol

Assuming you want to split a string.

strtok_r and your favorite string-to-num function like strtol

无言温柔 2024-07-31 07:03:40

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

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

If you're dealing with an actual floating-point number, as opposed to a string representation of such, you should use modf for splitting out the integral and fractional parts.

Perl's split splits by regex, so to replicate full functionality you'd need a regex library. For general string-splitting, you may be able to use strtok, but because it changes the string in-place, strtok_r (described on the same page) is recommended instead.

落在眉间の轻吻 2024-07-31 07:03:39
void split( double num, int& whole_number, double& fraction) {
    fraction = modf(num, &whole_number);
}

这是有效的,因为 modf 获取双精度数的整数部分并返回小数部分。

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

This works since modf takes the integer part of the double and returns the fractional part.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文