Moderator: Board moderators
# include <stdio.h>
# include <stdlib.h>
void inverte (char *string)
{
int i,j;
char h;
for (i=0, j=strlen(string)-1; i<j; ++i, --j)
{
h= string[i];
string[i]= string[j];
string[j]= h;
}
}
int reverso (char *string)
{
char r[13]="AHIMOTUVWXY18";
int i,j,aux=0;
for (i=0; i<strlen(string); ++i)
{
for (j=0; j<13; ++j)
{
if (string[i]==r[j])
aux++;
}
}
return aux;
}
void substitui (char *string)
{
int i,aux;
for (i=0; i<strlen(string); ++i)
{
if (string[i] == 'E')
{
string[i]= '3';
aux++;
}
else
if (string[i] == 'J')
{
string[i]= 'L';
aux++;
}
else
if (string[i] == 'L')
{
string[i]= 'J';
aux++;
}
else
if (string[i] == 'Z')
{
string[i]= '5';
aux++;
}
else
if (string[i] == '2')
{
string[i]= 'S';
aux++;
}
else
if (string[i] == '3')
{
string[i]= 'E';
aux++;
}
else
if (string[i] == '5')
{
string[i]= 'Z';
aux++;
}
else
if (string[i] == 'S')
{
string[i]= '2';
aux++;
}
}
}
int main (void)
{
char s[50],t[50];
int i,cont,aux;
while (gets(s) != EOF)
{
cont=-1;
strcpy(t,s);
inverte(t);
if (strcmp(s,t)==0)
{
cont=1;
}
substitui(t);
if (strcmp(s,t)==0)
{
cont--;
}
aux=reverso(t);
if (cont==-1)
{
for (i=0; i<strlen(t); ++i)
{
printf("%c", s[i]);
}
printf(" -- is not a palindrome.\n\n");
}else
if (cont==1)
{
for (i=0; i<strlen(s); ++i)
{
printf("%c", s[i]);
}
printf(" -- is a regular palindrome.\n\n");
}else
if (cont==-2)
{
for (i=0; i<strlen(s); ++i)
{
printf("%c", s[i]);
}
printf(" -- is a mirrored string.\n\n");
}else
if (cont==0)
{
for (i=0; i<strlen(s); ++i)
{
printf("%c", s[i]);
}
if (aux==strlen(s))
printf(" -- is a mirrored palindrome.\n\n");
else
printf(" -- is a regular palindrome.\n\n");
}
}
return 0;
}
AC
Users browsing this forum: No registered users and 0 guests