黑马程序员技术交流社区

标题: 判断字符串回文问题,一定又更简洁的,求指导下 [打印本页]

作者: 李言    时间: 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