objective-c - 在(短)数组[] = {1、2、3}中转换 NSString @"123"?

标签 objective-c c string parsing math

我无法想象一种“干净”或有效的方法来做到这一点。

我想将一串数字(如@"1234")转换为计算器宠物项目*的短裤数组。

我想先获取子字符串,然后再获取子字符串的 intValue,但这听起来既麻烦又矫枉过正。会有更优雅的方式吗?

提前致谢!

* 我知道有更有效的方法来做数学,很多 C 库都这样做,但这是为了我自己的教育:-)。

最佳答案

如果我有这个直觉,你想把一个 NSString 变成一个短数组吗?此函数假定 NSString 中的每个字符都是一个单独的短字符。哦,不要忘记在完成后释放该数组!

//Stephen Melvin <jinksys@gmail.com>
short *NSStringToShortArray(NSString *digits){

    int count = [digits length];

    short *shortArray = malloc(sizeof(short)*count);

    for(int i = 0; i<count; i++){
        shortArray[i] = (short)[digits characterAtIndex:i] - '0';
    }

    return shortArray;
}

关于objective-c - 在(短)数组[] = {1、2、3}中转换 NSString @"123"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4576340/

相关文章:

c - 可变扫描输入

java - 在java中替换特殊单词的最佳方法

ios - 与 automaticallyAdjustsScrollViewInsets 的兼容性

ios - GCD NSURLSession completionHandler block 返回值 null

ios - 允许 UITableViewCell 上的手势落入底层 View

c - 库中的 SIGCHLD 和 fork + waitpid()

ios - 向 UITextView 添加手势会取消默认行为

c - 如何限制PWM占空比值的范围?

string - 如何在 bash 中的两个函数之间传递包含空格的字母数字变量?

java - 按字符串的前 6 个字符对字符串进行排序