401 Palindromes
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char a[21] = { 'A', 'E', 'H', 'I', 'J', 'L', 'M', 'O', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '5', '8' };
char g[100][100];
int ismirror(char *b)
{
int i, j, n = 0, k;
i = strlen(b);
for (j = 0; j<i; j++)
{
for (k = 0; k<21; k++)
{
if (a[k] == b[j])
{
n++;
continue;
}
}
}
if (n == i)
return 1;
else
return 0;
}
int isplain(char *b)
{
int i, k;
i = strlen(b);
if(i==1)
return 1;
for (k = 0; k<i / 2; k++)
{
if (b[k] != b[i - k - 1])
return 0;
}
return 1;
}
int main()//switch-case语句不熟悉
{
char b[20],r[50];
int c, d, t=0, i;
while (gets_s(b,20*sizeof(char)))
{
memset(r, 0, 50 * sizeof(char));
system("cls");
c = ismirror(b);
d = isplain(b);
strcat_s(r,sizeof(char)*50, b);//strcat去掉第一个的结束符然后把第二个连接到末尾
if (c == 1 && d == 1)
{
strcat_s(r,sizeof(char)*50, " -- is a mirrored palindrome.\n");
strcpy_s(g[t++],sizeof(char)*100, r);
}
else if (c == 1 && d != 1)
{
strcat_s(r,sizeof(char)*50, " -- is a mirrored string.\n");
strcpy_s(g[t++],sizeof(char)*100, r);
}
else if (c != 1 && d == 1)
{
strcat_s(r,sizeof(char)*50, " -- is a regular palindrome.\n");
strcpy_s(g[t++],sizeof(char)*100, r);
}
else
{
strcat_s(r,sizeof(char)*50, " -- is not a palindrome.\n");
strcpy_s(g[t++],sizeof(char)*100, r);
}
for (i = 0; i < t; i++)
{
puts(g[i]);
}
}
return 0;
}#include<stdio.h>
#include<s