I am using qsort function in c..its a in built function…it works well for strings having length less than 7..on strings whose length > 7, it gives “Segmentation fault (core dumped)”
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
static int cmpr( const void *a, const void *b) {
return strcmp( *(char **)a, *(char **)b);
}
int main()
{
int t;
char str1[MAX],str2[MAX];
scanf("%d",&t);
while(t--)
{
scanf("%s %s",str1,str2);
int len1=strlen(str1)/sizeof(char *);
int len2=strlen(str2)/sizeof(char *);
qsort(str1, len1, sizeof(char *), cmpr);
qsort(str2, len2, sizeof(char *), cmpr);
if((strstr(str1,str2)!=NULL)&& (strlen(str1)==strlen(str2)))
printf("YES");
else if((strstr(str2,str1)!=NULL) && (strlen(str1)==strlen(str2)))
printf("YES");
else if((strstr(str2,str1)!=NULL) && (strlen(str1)!=strlen(str2)))
printf("NO");
else if((strstr(str1,str2)!=NULL) && (strlen(str1)!=strlen(str2)))
printf("NO");
else
printf("YES");
}
return 0;
}
…any idea why?
I think the lines
should read
Then the following should probably be changed
As we do not have code for
qsortI would hazard a guess that thecmprfunction is also incorrect.