c++ - 测试字符串是否以数字开头

标签 c++ regex

我刚刚开始学习 C++。如果字符串以数字开头,我有哪些测试选项?我的函数 is_page_number 在以下程序中实现了(我认为)这个技巧。这是一个坏主意吗?我怎样才能在这里使用正则表达式?如果代码的任何部分写得不好,欢迎任何评论。

#include <string>
#include <iostream>
#include <fstream>

using std::string;
using std::cout;
using std::ifstream;
using std::endl;

bool is_page_number(const string& aline) {
    return aline[0] == '1' | aline[0] == '2' | aline[0] == '3' | aline[0] == '4' | aline[0] == '5' | aline[0] == '6' | aline[0] == '7' | aline[0] == '8' | aline[0] == '9';
}

int main() {
    const string temp_filename("test_input.txt");
    ifstream input(temp_filename.c_str());
    string one_line;
    while (getline(input,one_line)) {
            if(is_page_number(one_line)) {
                    cout << "page number: ";
            }
            cout << one_line << endl;
    }
}

最佳答案

#include <cctype>

return isdigit(aline[0]);

关于c++ - 测试字符串是否以数字开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8949267/

相关文章:

c++ - 传递给线程的 lambda 中的调用函数

c++ - Matrix Native 类的迭代器

Python 匹配正则表达式总是返回 None

c++ - 如何使用具有指向参数的数组指针的方法?

c++ - 在 Qi 中对解析器公开的属性应用操作

c++ - 为什么我的程序打印出空终止符?

mysql - Sql 查询使用正则表达式

regex - grep 带有正则表达式列表的文件

.net - 用于验证十六进制字符串的正则表达式

java - 正则表达式 - 捕获组混淆