黑马程序员技术交流社区
标题:
判断字符串回文问题,一定又更简洁的,求指导下
[打印本页]
作者:
李言
时间:
2015-6-15 22:57
标题:
判断字符串回文问题,一定又更简洁的,求指导下
//
// main.c
// 指针练习3
//
// Created by 李言 on 15/6/14.
// Copyright (c) 2015年 ly. All rights reserved.
//
/*
编写一个函数,判断某个字符串是否为回文。
回文就是从左边开始读 和 从右边开始读 都是一样的,比如"abcba"
*/
#include <stdio.h>
#include <string.h>
#define SIZE 100
void huiWen(char *p1);
int main() {
char str[SIZE] = "0";
char *p = str;
printf("输入一个字符串,来判断该字符串是不是回文\n");
// 提示输入
scanf("%s", p);
huiWen(p);
return 0;
}
void huiWen(char *p1){
// 实现:
// 1.计算字符串长度
long int len;
int i = 0, j = 0;
len = strlen(p1);
// 2.依次比较第一个和最后一个
for(i=0; i<len/2; i++){
// 如果有任一个字符不能和相对应位置字符相等,则不是回文,并跳出循环
if(*(p1+i) != *(p1+len-1-i)){
printf("该字符不是回文\n");
break;
}else if(*(p1+i) == *(p1+len-1-i)){
// 如果相等,则比较下一位,并做标记
j++;
}
if(j == len/2){
printf("该字符是回文");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2