0

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

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

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

1 回答 1

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

编辑:对不起,起初没有完全理解。要检查一下。

于 2012-11-13T10:53:32.940 回答