C++程序 检查字符串是否仅包含数字

C++程序 检查字符串是否仅包含数字

字符串是由双引号括起来的字符或文本集合。一个问题是我们如何在C++中检查字符串是否只包含数字?因此,为了解决这个问题,我们可以使用下面文章中提到的方法:

例如:

“125” -> True

“1h25” -> False

“012” -> True

检查C++中字符串是否仅包含数字的方法

有几种检查字符串是否只包含数字的方法,这些方法包括:

  1. 使用ASCII值
  2. 使用isdigit( )函数
  3. 使用all_of()和isdigit()

1. 使用ASCII值进行检查

每个字符有自己独特的ASCII值,因此,要检查字符串是否为数字,我们只需检查字符串中字符的ASCII值,如果所有字符都是数字,则我们可以说该字符串仅包含数字。

'0'的ASCII值为48,'9'的ASCII值为57

例如:

// C++程序演示
// 使用ASCII值进行检查
#include <iostream>
using namespace std;
 
void is_digits(string& str)
{
    for (char ch : str) {
        int v = ch; // 转换为ASCII值
        if (!(ch >= 48 && ch <= 57)) {
            cout << "False" << endl;
            return;
        }
    }
 
    cout << "True" << endl;
}
 
// 主函数
int main()
{
    string str = "125";
    is_digits(str);
 
    str = "1h34";
    is_digits(str);
 
    str = "012";
    is_digits(str);
 
    return 0;
}  

输出

True
False
True

2. 使用isdigit()函数进行检查

is_digit()函数用于检查字符是否为数字。因此,我们可以在循环中使用此函数一一检查字符是否为数字。

例如:

#include <bits/stdc++.h>
using namespace std;
 
void is_digits(string& str)
{
    for (char ch : str) {
        if (!isdigit(ch)){
              cout << "False" << endl;
            return;
        }
    }
 
    cout << "True" << endl;
}
 
int main()
{
    string str = "125";
    is_digits(str);
 
    str = "1h34";
    is_digits(str);
 
    str = "012";
    is_digits(str);
 
    return 0;
}  

输出

True
False
True

3. 使用all_of()和isdigit()进行检查

all_of()和isdigit()可以一起检查字符串中的所有字符是否都为数字。这两个是重建函数,用于执行此任务。

语法:

all_of(string_name.begin(), str_name.end(), ::isdigit);

函数的解释:

isdigit过程被使用。

  • int isdigit( int ch );
  • 比较所传递的字符ch是否为‘0”1’…’9’

all_of()

  • 它基于元素逐个地执行给定的方法,并作为AND操作符。
  • 如果所有元素都返回True,则all_of()返回True。
  • 只要有一个错误,就返回False。

例如:

// C++程序,使用all_of()和isdigit()函数检查方法
#include <bits/stdc++.h>
using namespace std;
 
// 输出布尔值
void print(bool x)
{
    if (x)
        cout << "True" << endl;
    else
        cout << "False" << endl;
}
 
// 检查函数
bool is_digits(string& str)
{
    return all_of(str.begin(), str.end(), ::isdigit);
}
 
// 主程序
int main()
{
    string str = "125";
    print(is_digits(str));
 
    str = "1h34";
    print(is_digits(str));
 
    str = "012";
    print(is_digits(str));
 
    return 0;
}  

输出

True
False
True

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 示例