gpt4 book ai didi

ios - 检查字符串是否具有有效数字

转载 作者:行者123 更新时间:2023-12-01 16:42:49 25 4
gpt4 key购买 nike

我是一名编程新手,目前正在 objective-c 中编写一个转换calc程序,我确实很挣扎。

我有一个表示无符号long long值的字符串。在尝试添加另一个字符以确保新字符在添加之前不会超过LONG_LONG_MAX时,我需要一种方法。或删除最后一个字符(如果该值大于/将大于LONG_LONG_MAX)

我认为甚至可以尝试的唯一可能方法是:

- (BOOL) isNumberStringValid:(NSString *)stringValue {
unsigned long long uVal = strtoull(stringValue.UTF8String, NULL, 0);

if (uVal <= ULLONG_MAX) return TRUE;
else return FALSE;
}

我知道这是行不通的,因为uVal始终为<= ULLONG_MAX,但我想不出任何其他方法来检查。谁能帮我找到实现这一目标的方法???

最佳答案

您可以使用strtoull()errno的值设置为ERANGE的事实(如果给定的话)
字符串超出范围:

- (BOOL) isNumberStringValid:(NSString *)stringValue {
errno = 0;
unsigned long long uVal = strtoull(stringValue.UTF8String, NULL, 0);
return (errno == 0);
}

一些测试(ULLONG_MAX = 264-1 = 18446744073709551615):
1234 : TRUE
18446744073709551615 : TRUE
18446744073709551616 : FALSE
1844674407370955161678 : FALSE

关于ios - 检查字符串是否具有有效数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com