【发布时间】:2018-12-23 01:48:52
【问题描述】:
static int myCompare (const void * a, const void * b)
{
return strcmp (*(const char **) a, *(const char **) b);
}
void sort1(const char *str1[],int n1)
{
qsort (str1,n1,sizeof (const char *), myCompare);
}
void sort2(const char *str2[], int n2)
{
qsort( str2, n2, sizeof (const char *),myCompare);
}
int main ()
{
const char *str1[] = {"listen"};
const char *str2[] = {"silent"};
int n1 = sizeof(str1)/sizeof(str1[0]);
int n2 = sizeof(str2)/sizeof(str2[0]);
sort1(str1,n1);
sort2(str2,n2);
int x = strcmp(*str1,*str2);
if(x==0)
printf("\n Both The Strings Are Anagram\n");
else
printf("\n Strings Are Not Anagram \n");
return 0;
}
我希望对字符串进行排序然后比较它们,以检查它们是否是 Anagram。
问题是字符串没有排序。
【问题讨论】:
-
现在是learn how to debug 的好时机。向我们展示您尝试调试它的内容。如果您不知道如何使用调试器,请学习它。作为起点,为什么 str1 和 str2 是一个 char 指针数组?
-
好吧,您已经对包含一个元素的字符数组进行了排序。由于只有一个元素,因此没有任何变化。您是否打算对这些字符串中的字符进行排序,而不是对数组中的字符数组进行排序?
-
但是排序不是检查字符串是否是字谜的方法,只要它们由相同的字符组成。要检查它们是否是字谜,请比较长度并向后迭代一个字符串,看看它们是否相同。
-
@KamilCuk 不,你在想回文。
-
@kiner_shah - 是的,这正是我想要做的。
标签: c sorting data-structures