49.输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL)

简介: 49.输入一字符串,检查是否回文 (回文是指正反序相同,如,LeveL)

(1)

#include<iostream>
using namespace std;
 
int main()
{
    int k=0;
    int j;
    char b[20];
 
    cout<<"please input an number: "<<endl;
    cin>>b;
 
    for(j=0;j<20&&b[j]!='\0' ;j++); //字符串有一个结束符,判断它可知是否结束
    {
        k=j;
    }
    for(int m=0;m<k;m++)
    {
        if(b[m]!=b[k-m-1])
        {
            cout<<"这不是回文数!"<<endl;
            return -1;//跳出循环
        } //不能判断一个就确定是回文
    }
 
    //检查完毕,是回文才会到这里
    cout<<"这是回文数!"<<endl;
 
    return 0;
}

(2)

#include<iostream>
#include<string.h>//这个头文件可以使用strlen函数
using namespace std;
 
int main()
{
    int k=0;
    int m,n;
    char b[20];
 
    cout<<"please input an number: "<<endl;
    cin>>b;
 
    for (m=0,n=strlen(b) - 1; (m!=n) && (m+1!=n); m++, n--)
    {
        if (b[m] != b[n])
        {
            cout<<"这不是回文数!"<<endl;
            return -1;//跳出循环
        }//不能判断一个就确定是回文
    }
 
    //检查完毕,是回文才会到这里
    cout<<"这是回文数!"<<endl;
    return 0;
}

(3)运用指针

#include<iostream>
#include<string.h>//这个头文件可以使用strlen函数
using namespace std;
int HuiWen(char*);
 
int main()
{
    int k=0;
    int m,n;
    char b[20];
 
    cout<<"please input an number: "<<endl;
    cin>>b;
 
    if(HuiWen(b))
    {
        cout<<"这是回文数";
    }else
    {
        cout<<"这不是回文数";
    }
 
    return 0;
}
 
int HuiWen(char* s)
{
    if(NULL == s)
    {
        return 0;
    }
    char *head=s;//指向第一个字符
    char *tail=s+strlen(s)-1;//指向最后一个字符
 
 
    while(true)
    {
        if(head >= tail)return 1;
        if(*head == *tail)
        {
            head++;
            tail--;
        }
        else
        {
            return 0;
        }
    }
}
目录
相关文章
|
移动开发 安全 数据安全/隐私保护
ios安全加固 ios 加固方案
4.1字符串加密字符串会暴露APP的很多关键信息,攻击者可以根据界面显示的字符串,快速找到相关逻辑的处理函数,从而进行分析破解。加密字符串可以增加攻击者阅读代码的难度以及根据字符串静态搜索的难度。
|
缓存 Linux 网络安全
|
Java 对象存储 开发者
如何找出Java进程占用CPU高的元凶
本文记录了一次Java进程CPU占用率过高的问题和排查思路。
|
消息中间件 编解码 运维
阿里云 Serverless 异步任务处理系统在数据分析领域的应用
本文主要介绍异步任务处理系统中的数据分析,函数计算异步任务最佳实践-Kafka ETL,函数计算异步任务最佳实践-音视频处理等。
176244 349
|
SQL 运维 监控
Nest.js 实战 (十):使用 winston 打印和收集日志记录
这篇文章介绍了在Nest服务中如何使用Winston记录日志。文章首先强调了日志记录在后台服务中的重要性,接着提到Nest默认的内部日志记录器,并指出可以通过@nestjs/common包中的Logger类来全面控制日志系统的行为。文章还提到,为了在生产环境中实现更高级的日志功能,可以使用如Winston之类的Node.js日志包。接下来,文章介绍了如何在Nest服务中使用Winston记录日志,包括安装相关依赖、创建winston配置文件以及实现简单的日志记录示例。最后,文章指出更高级的自定义日志功能需要读者自己去探索。
640 0
Nest.js 实战 (十):使用 winston 打印和收集日志记录
|
存储 缓存 算法
【计算机网络概述】第一章:概论 1.3什么是网络核心
【计算机网络概述】第一章:概论 1.3什么是网络核心
243 1
|
人工智能 监控 物联网
医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性
医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性【2月更文挑战第3天】
医疗大模型:数据+知识双轮驱动实现医学推理、医患问答、病历自动生成、临床决策,为未来医疗服务提供全新可能性
|
弹性计算 运维 监控
阿里云贾正华分享:Alibaba Cloud Linux为倚天实例打造最佳OS体验
2023年8月31日,系列课程第四节《Alibaba Cloud Linux:为倚天实例打造最佳OS体验》正式上线,由阿里云操作系统产品专家贾正华主讲,本期节目在阿里云官网、阿里云钉钉视频号、InfoQ官网、阿里云开发者微信视频号、阿里云创新中心直播平台&微信视频号同步播出,同时可以点击【https://developer.aliyun.com/topic/ecs-yitian】进入【倚天实例迁移课程官网】了解更多内容。
|
传感器 搜索推荐 数据挖掘
变量施药与施肥系统
变量施药与施肥系统
234 1
|
关系型数据库 MySQL 数据库
MySQL | 数据库的管理和操作【表的增删改查】(三)
MySQL | 数据库的管理和操作【表的增删改查】(三)