Can anyone tell me what's wrong with my code.Thanks.
Code: Select all
#include <stdio.h>
#include <string.h>
#define Maxarray 1000
#define STRLENGTH 100
void delspace(char *s)
{
char t[STRLENGTH];
int i,j=0,k=strlen(s);
for (i=0;i<k;i++)
if (s[i]!=' ') t[j++]=s[i];
t[j]='?';
strcpy(s,t);
return;
}
void sortstr(char *s)
{
int k=strlen(s),i,j;
char temp;
for (i=0;i<k-1;i++)
for (j=i+1;j<k;j++)
if (s[i]>s[j]) { temp=s[i]; s[i]=s[j]; s[j]=temp; }
return;
}
int getsLine(char *line)
{
int i=0;
char ch;
if (1 != scanf("%c", &ch)) return 0;
while (ch != 'n')
{
line[i++] = ch;
if (1 != scanf("%c", &ch)) break;
}
line[i] = '?';
return i;
}
int checkblankline(char *s)
{
int k=strlen(s),i;
for (i=0;i<k;i++) if (s[i]!=' ') return 1;
return 0;
}
main()
{
char ostr[Maxarray][STRLENGTH],nstr[Maxarray][STRLENGTH],dummy[STRLENGTH];
int i,j,k,c,testcase;
scanf("%dn",&testcase);
for (c=0;c<testcase;c++)
{
i=0;
while (getsLine(ostr[i])>0)
{
if (checkblankline(ostr[i])==0) break;
strcpy(nstr[i],ostr[i]);
delspace(nstr[i]);
sortstr(nstr[i]);
i++;
}
for (j=0;j<i;j++)
for (k=j+1;k<i;k++)
if ( strcmp(nstr[j],nstr[k])==0 )
printf("%s = %sn",ostr[j],ostr[k]);
printf("n");
} /* while */
return 0;
}