C++判断详解

一、C++判断语句

C++中的判断语句主要包括if语句和switch语句两种形式。


if(条件)
{
    //条件成立时执行的语句
}
else
{
    //条件不成立时执行的语句
}

switch(表达式)
{
    case 常量表达式1:
        //执行语句1;
        break;
    case 常量表达式2:
        //执行语句2;
        break;
    default:
        //执行default语句;
        break;
}

if语句用于对某个条件进行判断,如果条件成立,就执行if语句后面的语句块,否则执行else中的语句。switch语句也是一种条件语句,它的判断是基于一个表达式的值来匹配case语句。如果找到匹配的case语句,就执行其中的语句块。

二、C++判断数组里面有没有这个数

判断一个数组中是否包含某个元素的方法,常见的有两种:

方法一:遍历数组,依次比较每个元素是否与目标元素相等。


bool isExist(int arr[], int len, int target)
{
    for(int i=0; i<len; i++)
    {
        if(arr[i] == target)
        {
            return true;
        }
    }
    return false;
}

方法二:使用STL中的find算法。


#include 

bool isExist(int arr[], int len, int target)
{
    return std::find(arr, arr+len, target) != arr+len;
}

三、C++判断大小端

在计算机中,数据的存储方式分为小端模式和大端模式。在小端模式中,存储时最低位优先,而在大端模式中,存储时最高位优先。

可以通过以下代码来判断当前机器的大小端模式:


#include 

int main()
{
    unsigned int i = 0x12345678;
    char *p = (char *)&i;
    if(*p == 0x78)
    {
        std::cout << "little endian" << std::endl;
    }
    else
    {
        std::cout << "big endian" << std::endl;
    }
    return 0;
}

四、C++判断回文数

回文数是指正着读和反着读都一样的数,如121、1221、12321等。可以使用以下代码判断一个数是否是回文数:


#include 

bool isPalindrome(int n)
{
    if(n  0)
    {
        sum = sum*10 + temp%10;
        temp /= 10;
    }
    return sum == n;
}

int main()
{
    int a = 121;
    int b = 1234;
    std::cout << a << " isPalindrome: " << isPalindrome(a) << std::endl;
    std::cout << b << " isPalindrome: " << isPalindrome(b) << std::endl;
    return 0;
}

五、C++判断包含

判断一个数组或字符串中是否包含某个元素或子串,可以使用STL中的find算法或者C++11中提供的std::string::find函数。


#include 
#include 

int main()
{
    int arr[] = {1, 2, 3, 4, 5};
    int len = sizeof(arr)/sizeof(arr[0]);
    int target = 3;
    bool isExist = std::find(arr, arr+len, target) != arr+len;
    std::cout << "arr contains 3: " << isExist << std::endl;

    std::string str = "Welcome to C++ programming.";
    std::string subStr = "programming";
    bool res = str.find(subStr) != std::string::npos;
    std::cout << "str contains subStr: " << res << std::endl;
    return 0;
}

六、C++判断字符串是空

判断一个字符串是否为空,可以通过以下代码进行判断:


#include 
#include 

int main()
{
    std::string str1 = "";
    std::string str2 = "Hello, World!";
    std::cout << "str1 is empty: " << (str1.empty() ? "true" : "false") << std::endl;
    std::cout << "str2 is empty: " << (str2.empty() ? "true" : "false") << std::endl;
    return 0;
}

七、C++判断串口超时

在嵌入式系统中,通常使用串口进行通信。当发送数据后,如果一段时间内没有接收到回应数据,就可以认为串口通信超时了。可以通过以下代码进行判断:


#include 
#include 
#include 

int main()
{
    bool isTimeOut = false;
    auto start_time = std::chrono::steady_clock::now();
    while(1)
    {
        //do something...
        auto end_time = std::chrono::steady_clock::now();
        auto elapsed_time = std::chrono::duration_cast(end_time-start_time);
        if(elapsed_time.count() > 1000)
        {
            isTimeOut = true;
            break;
        }
        std::this_thread::sleep_for(std::chrono::milliseconds(100));
    }
    std::cout << "Is timeout: " << isTimeOut << std::endl;
    return 0;
}

八、C++判断移动硬盘

可以通过以下代码判断当前系统中是否有移动硬盘:


#include 
#include 

int main()
{
    DWORD type = GetDriveType("E:\\");
    if(type == DRIVE_REMOVABLE)
    {
        std::cout << "移动硬盘已插入" << std::endl;
    }
    else if(type == DRIVE_FIXED)
    {
        std::cout << "移动硬盘未插入" << std::endl;
    }
    return 0;
}

九、C++判断是否为单词

可以通过以下代码判断一个字符串是否为单词:


#include 
#include 

bool isWord(const std::string &str)
{
    for(size_t i=0; i<str.size(); i++)
    {
        if(!isalpha(str[i]))
        {
            return false;
        }
    }
    return true;
}

int main()
{
    std::string str1 = "hello";
    std::string str2 = "Hello, World!";
    std::cout << "\"" << str1 << "\"" << " is word: " << isWord(str1) << std::endl;
    std::cout << "\"" << str2 << "\"" << " is word: " << isWord(str2) << std::endl;
    return 0;
}

十、C++判断是否为数字

可以通过以下代码判断一个字符串是否为数字:


#include 
#include 

bool isNumber(const std::string &str)
{
    for(int i=0; i<str.size(); i++)
    {
        if(!isdigit(str[i]))
        {
            return false;
        }
    }
    return true;
}

int main()
{
    std::string str1 = "123";
    std::string str2 = "Hello, World!";
    std::cout << "\"" << str1 << "\"" << " is number: " << isNumber(str1) << std::endl;
    std::cout << "\"" << str2 << "\"" << " is number: " << isNumber(str2) << std::endl;
    return 0;
}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/300883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-29 14:18
下一篇 2024-12-29 14:18

相关推荐

  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • C语言贪吃蛇详解

    一、数据结构和算法 C语言贪吃蛇主要运用了以下数据结构和算法: 1. 链表 typedef struct body { int x; int y; struct body *nex…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25

发表回复

登录后才能评论