将 NSString 转换为 For 循环中的字符数组



我正在尝试使用iOS项目中的现有代码段来按字母顺序排列数组中的单词列表(例如,将番茄制成amoott,或堆叠成ackst)。如果我自己运行它,代码似乎可以工作,但我正在尝试将其集成到我现有的应用程序中。

我希望它按字母顺序排列的每个单词都作为 NSString 存储在数组中。问题似乎是代码将单词作为字符数组,我无法将我的 NSString 转换为该格式。

如果我使用string = [currentWord UTFString],我得到一个错误Array type char[128] is not assignable,如果我尝试在循环内创建char数组(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);
    }
}

这应该有效:

- (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
  }
}

编辑:对不起,一开始没有完全理解。去看看这个。

最新更新