当前位置:  开发笔记 > 编程语言 > 正文

如何解析glib字符串中的整数(gchar*)?

如何解决《如何解析glib字符串中的整数(gchar*)?》经验,为你挑选了1个好方法。

我有一个字符串,其中包含一个整数值(的数字),我想获得这个值作为一个int.我知道还有其他方法可以做到这一点,如atoi():但是,我真的很想用glib来做这件事.这样的解析/转换功能是否存在?



1> Matt Joiner..:

GLib为标准C库提供了大量的输入安全检查,并在可行的情况下进行了增强.

你正在寻找的功能是g_ascii_strtoll().

迂腐的附录

atoi()strtol与AND 相同的方式处理语言环境g_ascii_strtoll().仔细阅读联机帮助页和Glib文档将揭示这一点.以下是一些不能RTFM的片段:

atoi()

atoi()函数将nptr指向的字符串的初始部分转换为int.行为与strtol(nptr, (char **) NULL, 10);atoi()不检测错误的行为相同.

strtol()

在"C"语言环境以外的语言环境中,也可以接受其他字符串.(例如,可能支持当前区域设置的千位分隔符.)

g_ascii_strtoll()

将字符串转换为gint64值.此函数的行为类似于标准的strtoll()函数在C语言环境中的作用.它在没有实际更改当前区域设置的情况下执行此操作,因为这不是线程安全的.

更改区域设置

如果这不是sans-locale,则可以通过环境变量和/或显式调用来设置语言环境 setlocale()


这实际上是错误的答案.g_ascii_strtoll()不是atoi()或strtoll()的增强,它是一个与语言环境无关的版本.g_ascii_strtoll()文档说:"要处理来自用户的输入,通常应该使用区域设置敏感的系统strtoll()函数." ntd的答案是正确的,只需使用atoi()将字符串转换为int.它不是GLib功能,但没关系.
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有