2015-02-02 3 views
-1

그래서 프로젝트의 인덱서를 만들려고하고 char **를 사용하여 파일의 단어를 저장해야합니다. 배열 안에있는 단어를 정렬하려고합니다. 지금까지 시도한 것들을 요약 해 보면 다음과 같습니다.char **

void Word::arrangeWords(char **&words) 
{ 

char **temp=new char*[getSize()]; 

temp[getSize()-1]=words[getSize()-1]; 
for (int i=getSize()-1;i>0;i--) 
{ 
    comp=strcmp(temp[i], temp[i-1]); 
    if (comp<0) 
    { 
     temp[i]=words[i-1]; 
     temp[i-1]=words[i]; 
    } 
    else 
    { 
     temp[i]=words[i]; 
    } 
} 
delete [] words; 
words=temp; 
} 

이것은 결국 작동하지 않으며 그 이유는 알 수 있습니다. 쉽게 쉽게 정렬 할 수 있습니까? (그들 모두를 저장하고 std::vector) std::string를 사용하지만 그냥 작동 모든 것을 만드는

#include <cstring> 
#include <algorithm> 
void sortcstrings(const char** arr, size_t n) { 
    std::sort(arr, arr+n, [](const char* a, const char* b){ 
     return std::strcmp(a, b)<0;}); 
} 

, 훨씬 적은 오류가 발생하기 쉬운 : 사전

+0

그냥'qsort'를 사용하거나 C++'std :: sort'를 사용하십시오. – Deduplicator

+0

'std :: vector & words'를 사용하여'std :: sort (words.begin(), words.end());'를 사용하면 훨씬 간단하게 생활 할 수 있습니다. –

답변

2

간단한 방법으로 감사드립니다 ++ C 0 끝나는 문자열을 정렬합니다.