-2

我正在尝试使用 Objective-c 解决一些基本算法和数据结构问题,但我发现它有点难。我需要从控制台输入一个整数数组,最好的方法是什么?

请帮助指导我访问任何链接或文档。

谢谢,

4

1 回答 1

1

编辑:计划如下:

  1. 从控制台读取并将输入保存为 c 字符串。
  2. 将此 c-String 转换为我们可以调用方法的 NSString componentsSeparatedByString:
  3. 此方法返回单个数字的 NSStrings 的 NSArray。
  4. 之后,我们遍历 NSArray,为每个字符串创建一个包含字符串内容的 NSNumber,并将该 NSNumber 存储在 NSMutableArray 中。
  5. 我们 NSLog() NSArray 或者你可以对它的组件做任何你想做的事情。

所以这里很有趣:

NSMutableArray *numbersAsNumbersArray = [[NSMutableArray alloc] initWithCapacity:0];
char input[1000] = {};
scanf("%s", input);
NSString *inputString = [NSString stringWithCString:input encoding:NSUTF8StringEncoding];
NSArray *numbersAsStringsArray = [inputString componentsSeparatedByString:@","];
for (NSString *aNumberAsString in numbersAsStringsArray) {
    NSNumber *aNumber = @([aNumberAsString integerValue]);
    [numbersAsNumbersArray addObject:aNumber];
}
NSLog(@"%@", numbersAsNumbersArray);

输入: 3,5,6,7

输出: (3,5,6,7)

注意:大括号表示里面的数字存储在一个 NSArray 中

最后但并非最不重要的东西要阅读;)

NSArray 文档及其可变子类NSMutableArray

NSString 文档,特别是我们使用的方法

编辑 2:正如Martin R的评论中提到的(谢谢!)这里是上面代码的简短版本:

NSMutableArray *numbersAsNumbersArray = [[NSMutableArray alloc] initWithCapacity:0];
char input[1000] = {};
scanf("%s", input);
NSArray *numbersAsStringsArray = [[NSString stringWithCString:input encoding:NSUTF8StringEncoding] componentsSeparatedByString:@","];
numbersAsNumbersArray = [numbersAsStringsArray valueForKey:@"integerValue"];
NSLog(@"%@", numbersAsNumbersArray);
于 2013-04-16T06:41:09.710 回答