使用正则表达式时 C++ 程序崩溃

标签 c++ regex gcc g++ mingw32

编译后我的代码在到达正则表达式部分时崩溃:

我想检查接收到的字符串中是否存在任何数字。

#include <iostream>
#include <regex>
using namespace std;

int main()
{
    int in, count, rate;
    char *w;
    cin >> count;

    for(in = 1; in < 5; in++) {
        rate = 0;
        cin >> w;
        cout << "Case #";
        cout << in;
        cout << ":";

        if (regex_match (std::string(w), regex("([0-9])")))
            ++rate;
        cout << rate;
        cout << endl;
    }
    return 0;
}

最佳答案

您正在使用未分配内存的指针。这将使您的程序崩溃。只需将其声明为字符串,并尽量避免裸指针:

std::string w;

关于使用正则表达式时 C++ 程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26183306/

相关文章:

c++ - 如何解决这个矩阵问题以收集所有种子?

c++ - 返回对类变量的引用 - C++

regex - 在 Perl 中使用正则表达式获取字符串中的多个匹配项

Python 正则表达式匹配所有 5 位数字但没有更大的数字

python-3.x - 检查 `lookbehind` 中的两个 `RegEx` 条件是否都满足

c++ - gcc 和 MSFT CL 之间的位域结构大小不同

c++ - 非类型模板参数可以实现哪些优化?

java - C、C++ 和 Java 中的不同结果相同的表达式。为什么?

c++ - 模板类成员函数不是在实例化时编译的吗?

linux - 循环 0xb7 汇编但不会链接