2013-04-16 40 views
-2

我正在嘗試使用Objective-c來解決一些基本的算法和數據結構問題,並且我發現它很難。 我需要從控制檯輸入一個整數數組,最好的方法是什麼?如何從目標c中的控制檯輸入整數的NSArray?

請幫我指點一下任何鏈接或文檔。

感謝,

+0

等等,什麼?你的意思是你想從LLDB創建一個數組,並以某種方式影響程序的執行? – CodaFi

+0

你在說什麼「控制檯」? – matt

+2

可能是OS X上從標準輸入讀取的「命令行工具」。 –

回答

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 Documentation及其可變子類NSMutableArray

NSString Documentation,尤其是method we use

編輯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); 
+1

您可以將循環縮減爲'numbersAsNumbersArray = [numbersAsStringsArray valueForKey:@「integerValue」]':-) –

+0

您絕對是對的:)您甚至可以使用'[numbersAsNumbersArray addObject:@([aNumberAsString integerValue])保存另外6個字符]';)我只是想讓它更詳細些。我會盡快添加一個簡短的版本,我更喜歡它。 – HAS

+1

我的意思是你可以將'valueForKey:@「integerValue」'應用於* array *'numbersAsStringsArray',替換整個循環。 - 但這只是一個評論/建議。 –

相關問題