0
다음 코드는 세트의 각 문자열을 정렬 (문자 정렬) 한 다음 세트의 모든 문자열을 정렬합니다. 하지만 .. 내가 잘못을 세그멘테이션각 문자열을 정렬 한 다음 qsort를 사용하여 문자열 세트
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int comp (const void *a, const void *b)
{
return strcmp (*(char **) a, *(char **) b);
}
int compare(const void* a, const void* b)
{ return *(char*)a - *(char*)b; }
void printAnagramsTogether(char * str[], int size)
{
int i, j;
//qsort (str, size, sizeof (str[0]), comp);
for (i=0; i<size; i++)
qsort((void *)str[i], strlen(str[i]), sizeof (char), compare);
qsort (str, size, sizeof (str[0]), comp);
}
int main()
{
char* wordArr[] = {"cat", "dog", "tac", "god", "act"};
int size = sizeof(wordArr)/sizeof(wordArr[0]);
printAnagramsTogether(wordArr, size);
return 0;
}
C++을 사용하려면 [std :: string'] (http://en.cppreference.com/w/cpp/string/basic_string) 및 ['std :: string '과 같은 C++ 라이브러리를 사용하십시오. sort'] (http://en.cppreference.com/w/cpp/algorithm/sort). C와 C++은 아주 다른 두 언어입니다. –
적어도 동적 데이터 구조를 사용하십시오. 읽기 전용 메모리에 쓰려고하지 않는 한 대부분의 경우 세분화 오류가 없습니다. – Dmitry