我正在尝试使用Objective-c解决一些基本的算法和数据结构问题,我发现它有点难。我需要从控制台输入一个整数数组,最好的方法是什么?
请帮助我找到任何链接或文档。
谢谢,
编辑:计划如下:
- 从控制台读取并将输入保存为c-string。
- 将c-String转换为NSString,我们可以调用
componentsSeparatedByString:
方法。 - 这个方法返回一个由单个数字组成的nsstring的NSArray。之后我们循环NSArray,为每个字符串创建一个包含字符串内容的NSNumber,并将NSNumber存储在NSMutableArray中。
- 我们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 Documentation及其可变子类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);