C和指针之字符串编程练习10(判断字符串是否是回文数)
【摘要】 1、问题
//如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。
2、代码实现
#include <stdio.h>#include...
1、问题
//如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。
2、代码实现
-
#include <stdio.h>
-
#include <ctype.h>
-
-
-
//如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。
-
int palindrome(char *string)
-
{
-
if (string == NULL)
-
return 0;
-
char *start = string;
-
char *end = string;
-
//把end指向'\0',然后退以下,这里不要写成while (*end++ != '\0');
-
//不然需要--end两次
-
while (*end != '\0')
-
{
-
++end;
-
}
-
//尾巴指针退到字符串末尾
-
--end;
-
while (start < end)
-
{
-
//这里不能用if,if只能移动一个非字符的下标,如果非字符是
-
//连续的话,这里用if就会有问题
-
while (!isalpha(*start))
-
++start;
-
while (!isalpha(*end))
-
--end;
-
//只要发现不相等,就返回0
-
if (*start != *end)
-
return 0;
-
++start;
-
--end
文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。
原文链接:chenyu.blog.csdn.net/article/details/78587577
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)