有没有相当于 Perls 的东西? C 中的 split() 函数?
我正在尝试使用小数点作为分隔符来分割 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
假设你想分割一个字符串。
strtok_r
和您最喜欢的 string-to-num 函数,如strtol
Assuming you want to split a string.
strtok_r
and your favorite string-to-num function likestrtol
如果您正在处理实际的浮点数,而不是此类的字符串表示形式,则应该使用
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 usestrtok
, but because it changes the string in-place,strtok_r
(described on the same page) is recommended instead.这是有效的,因为 modf 获取双精度数的整数部分并返回小数部分。
This works since modf takes the integer part of the double and returns the fractional part.