0

iOS プロジェクトの既存のコードを使用して、配列内の単語のリストをアルファベット順に並べ替えようとしています (たとえば、tomato を amoott にしたり、ackst にスタックしたりします)。単独で実行するとコードは機能するようですが、既存のアプリに統合しようとしています。

アルファベット順に並べたい各単語は、配列内に NSString として格納されます。問題は、コードが単語を文字の配列として受け取り、NSStrings をその形式に変換できないことです。

を使用する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);
    }
}
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 に答える