2012-11-13 5 views
0

iOS 프로젝트에서 기존 코드를 사용하여 배열의 단어 목록을 알파벳순으로 정렬하려고합니다 (예 : 토마토를 amoott로 만들거나 ackst로 스택 넣기).). 이 코드는 독자적으로 실행하면 작동하지만 내 기존 앱에 통합하려고합니다.For 루프 내에서 NSString을 문자 배열로 변환

알파벳순으로 정렬하려는 각 단어는 배열 안에 NSString으로 저장됩니다. 문제는 코드가 char 배열로 단어를 가져와 내 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

관련 문제