
c语言 回文问题
回文是正读反读都相同的句子,忽略空白和标点符号。例如,“Madam,I'mAdam”。编写一个程序,编写键盘输入的字符串是否是回文。c语言...
回文是正读反读都相同的句子,忽略空白和标点符号。例如,“Madam,I'm Adam”。编写一个程序,编写键盘输入的字符串是否是回文。
c语言 展开
c语言 展开
2个回答
展开全部
//如果是的话就返回Y,不是的话返回N
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100], flag;
int len, i, j = 0;
gets(str1);
len = strlen(str1);
for (i = 0; i <= len - 1; i++)
{
if (((str1[i] >= 65) && (str1[i] <= 90)) || ((str1[i] >= 97) && (str1[i] <= 122)))
{
str2[j] = str1[i];
j++;
}
}
str2[j] = '\0';
len = strlen(str2);
for (i = 0; i < len; i++)
{
if(str2[i] >= 97) str2[i] = str2[i] - 32;
}
int x, y;
x = 0, y = len - 1;
flag = 'Y';
for(; x < y; x++, y--)
{
if (str2[x] != str2[y])
{
flag = 'N';
break;
}
}
if (flag == 'Y') printf("yes\n");
else printf("no\n");
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[100], flag;
int len, i, j = 0;
gets(str1);
len = strlen(str1);
for (i = 0; i <= len - 1; i++)
{
if (((str1[i] >= 65) && (str1[i] <= 90)) || ((str1[i] >= 97) && (str1[i] <= 122)))
{
str2[j] = str1[i];
j++;
}
}
str2[j] = '\0';
len = strlen(str2);
for (i = 0; i < len; i++)
{
if(str2[i] >= 97) str2[i] = str2[i] - 32;
}
int x, y;
x = 0, y = len - 1;
flag = 'Y';
for(; x < y; x++, y--)
{
if (str2[x] != str2[y])
{
flag = 'N';
break;
}
}
if (flag == 'Y') printf("yes\n");
else printf("no\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询