0
下面的代碼是對集合中的每個字符串進行排序(對其字符進行排序),然後對集合中的所有字符串進行排序。但它給我段錯誤..soritng每個字符串然後使用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++,請使用C++庫,如['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string)和['std :: sort'](http://en.cppreference.com/w/cpp/algorithm/sort)。 C和C++是兩種截然不同的語言。 –
或者至少使用動態數據結構,只要它不嘗試寫入只讀內存,沒有分段錯誤(在大多數情況下)。 – Dmitry