2012-11-13 33 views
0

我試圖使用現有的代碼在iOS的項目按字母順序排列的單詞列表中的陣列(例如,使番茄成爲amoott,或堆棧成ackst )。代碼似乎工作,如果我自己運行它,但我試圖將其集成到我現有的應用程序。轉換的NSString字符數組在for循環

每個字我希望它按字母順序排列被存儲爲一個陣列內一個NSString。這個問題似乎是代碼將這個詞作爲一個字符數組,並且我無法將我的NSString換成這種格式。

如果我使用string = [currentWord UTFString],我得到的Array type char[128] is not assignable一個錯誤,如果我嘗試創建循環(const char *string = [curentWord UTF8String])內的字符數組我得到與Initializing char with type const char discards qualifiers警告。不太確定我能如何解決它 - 任何提示?方法如下,稍後我會照顧存儲字母化版本。

- (void) alphabetizeWord { 
    char string[128], temp; 
    int n, i, j; 

    for (NSString* currentWord in wordsList) { 
     n = [currentWord length]; 
     for (i = 0; i < n-1; i++) { 
      for (j = i+1; j < n; j++) { 
       if (string[i] > string[j]) { 
        temp = string[i]; 
        string[i] = string[j]; 
        string[j] = temp; 
       } 
      } 
     } 
     NSLog(@"The word %@ in alphabetical order is %s", currentWord, string); 
    } 
} 
+0

所以你現在有一個NSString數組,你想要一個char *數組? – Snaker

+0

我這麼認爲,是的。棘手的看看哪部分不工作,但陣列中的NSString目前沒有進入'string'。 – Luke

回答

1

這應該工作:

- (void)alphabetizeWord { 
    char str[128]; 

    for (NSString *currentWord in wordList) 
    { 
    int wordLength = [currentWord length]; 
    for (int i = 0; i < wordLength; i++) 
    { 
     str[i] = [currentWord characterAtIndex:i]; 
    } 
    // Adding the termination char 
    str[wordLength] = 0; 
    // Add your word 
    } 
} 

編輯:對不起,沒有充分的先了解。要檢查一下。

+0

不,你贏了,似乎已經結合我現有的代碼與你在這裏給出的東西了! – Luke

+0

很高興我幫了:) – Snaker