Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数字匹配表达式_C++_Regex_Arrays_Math - Fatal编程技术网

C++ 数字匹配表达式

C++ 数字匹配表达式,c++,regex,arrays,math,C++,Regex,Arrays,Math,我需要能够在数字数组中搜索与运行时输入的表达式匹配的值。我想知道是否有类似于正则表达式的东西,但具体是数字 澄清一下,我的问题是“我想知道是否有什么类似于正则表达式的东西,只是专门针对数字?” @Free昵称似乎有正确的想法,它可以在运行时计算算术/逻辑表达式 一些简单的例子 我有一个整数数组: 100145675,0250,43,19 我想找到100-300之间的任何值。 这将是100、145和250 我要查找0、50或100的任何值。 那就是100加0 我想找到50的倍数。 这将是0、100

我需要能够在数字数组中搜索与运行时输入的表达式匹配的值。我想知道是否有类似于正则表达式的东西,但具体是数字

澄清一下,我的问题是“我想知道是否有什么类似于正则表达式的东西,只是专门针对数字?”

@Free昵称似乎有正确的想法,它可以在运行时计算算术/逻辑表达式

一些简单的例子

我有一个整数数组:
100145675,0250,43,19

我想找到100-300之间的任何值。
这将是100、145和250

我要查找0、50或100的任何值。
那就是100加0

我想找到50的倍数。

这将是0、100和250(或者可能只是100和250,这只是一个例子)

为什么需要一些regex-y?代码听起来很简单-

while(true){
    cout << "enter the min: ";
    cin >> min;
    cout << "enter the max: ";
    cin >> max;

    for(int i=0;i<ARR_SIZE;i++){
        if(arr[i]>mind && arr[i]<max) cout << arr[i];
    }
}
while(true){
cout>min;
cout>max;

对于(inti=0;imind&&arr[i]为什么需要一些regex-y?代码听起来很简单-

while(true){
    cout << "enter the min: ";
    cin >> min;
    cout << "enter the max: ";
    cin >> max;

    for(int i=0;i<ARR_SIZE;i++){
        if(arr[i]>mind && arr[i]<max) cout << arr[i];
    }
}
while(true){
cout>min;
cout>max;

对于(inti=0;imind&&arr[i]为什么需要一些regex-y?代码听起来很简单-

while(true){
    cout << "enter the min: ";
    cin >> min;
    cout << "enter the max: ";
    cin >> max;

    for(int i=0;i<ARR_SIZE;i++){
        if(arr[i]>mind && arr[i]<max) cout << arr[i];
    }
}
while(true){
cout>min;
cout>max;

对于(inti=0;imind&&arr[i]为什么需要一些regex-y?代码听起来很简单-

while(true){
    cout << "enter the min: ";
    cin >> min;
    cout << "enter the max: ";
    cin >> max;

    for(int i=0;i<ARR_SIZE;i++){
        if(arr[i]>mind && arr[i]<max) cout << arr[i];
    }
}
while(true){
cout>min;
cout>max;

对于(int i=0;imind&&arr[i],可以使用正则表达式查找文本中具有特殊属性的数字,但这可能不是最佳解决方案

  • 在100-300之间:
    ([12]\d\d)|(300)
  • 0、50或100:
    0 |(50)|(100)
  • 50的倍数:
    \d*[05]0

这些可以(也应该)通过应用结构来细化(例如,
50
不仅在
50
上匹配,而且在
250
上也匹配,
(?正则表达式可用于查找文本中具有特殊属性的数字,但这可能不是最佳解决方案

  • 在100-300之间:
    ([12]\d\d)|(300)
  • 0、50或100:
    0 |(50)|(100)
  • 50的倍数:
    \d*[05]0

这些可以(也应该)通过应用结构来细化(例如,
50
不仅在
50
上匹配,而且在
250
上也匹配,
(?正则表达式可用于查找文本中具有特殊属性的数字,但这可能不是最佳解决方案

  • 在100-300之间:
    ([12]\d\d)|(300)
  • 0、50或100:
    0 |(50)|(100)
  • 50的倍数:
    \d*[05]0

这些可以(也应该)通过应用结构来细化(例如,
50
不仅在
50
上匹配,而且在
250
上也匹配,
(?正则表达式可用于查找文本中具有特殊属性的数字,但这可能不是最佳解决方案

  • 在100-300之间:
    ([12]\d\d)|(300)
  • 0、50或100:
    0 |(50)|(100)
  • 50的倍数:
    \d*[05]0
这些可以(也应该)通过应用结构来细化(例如,
50
不仅在
50
上匹配,而且在
250
上也匹配,
(?“我需要能够在一个数字数组中搜索与运行时输入的表达式匹配的值。”

你真正需要的是:
  • 如果vector是一个选项(允许),则将输入读入数字数组,理想情况下为
    std::vector
  • 使用自定义的定义良好的规则和
  • 迭代数组,评估特定条件(范围、特定值等)

    您可以显式处理特定情况(检查特定字符串),这是一种可能的方法:

    int a[] = {100, 145, 675, 0, 250, 43, 19};
    size_t len = sizeof(a) / sizeof(a[0]);
    
    std::string expr;
    std::cin >> expr;
    
    if (expr == "%50") {
        for (size_t i = 0; i < len; ++i) {
            if (a[i] % 50 == 0)
                ...
        }
    }
    
    inta[]={100145675,0250,43,19};
    size_t len=sizeof(a)/sizeof(a[0]);
    std::字符串表达式;
    标准::cin>>expr;
    如果(expr==“%50”){
    对于(尺寸i=0;i
“我需要能够在数字数组中搜索与运行时输入的表达式匹配的值”

你真正需要的是:
  • 如果vector是一个选项(允许),则将输入读入数字数组,理想情况下为
    std::vector
  • 使用自定义的定义良好的规则和
  • 迭代数组,评估特定条件(范围、特定值等)

    您可以显式处理特定情况(检查特定字符串),这是一种可能的方法:

    int a[] = {100, 145, 675, 0, 250, 43, 19};
    size_t len = sizeof(a) / sizeof(a[0]);
    
    std::string expr;
    std::cin >> expr;
    
    if (expr == "%50") {
        for (size_t i = 0; i < len; ++i) {
            if (a[i] % 50 == 0)
                ...
        }
    }
    
    inta[]={100145675,0250,43,19};
    size_t len=sizeof(a)/sizeof(a[0]);
    std::字符串表达式;
    标准::cin>>expr;
    如果(expr==“%50”){
    对于(尺寸i=0;i
“我需要能够在数字数组中搜索与运行时输入的表达式匹配的值”

你真正需要的是:
  • 如果vector是一个选项(允许),则将输入读入数字数组,理想情况下为
    std::vector
  • 使用自定义的定义良好的规则和
  • 迭代数组,评估特定条件(范围、特定值等)

    您可以显式处理特定情况(检查特定字符串),这是一种可能的方法:

    int a[] = {100, 145, 675, 0, 250, 43, 19};
    size_t len = sizeof(a) / sizeof(a[0]);
    
    std::string expr;
    std::cin >> expr;
    
    if (expr == "%50") {
        for (size_t i = 0; i < len; ++i) {
            if (a[i] % 50 == 0)
                ...
        }
    }
    
    inta[]={100145675,0250,43,19};
    size_t len=sizeof(a)/sizeof(a[0]);
    std::字符串表达式;
    标准::cin>>expr;
    如果(expr==“%50”){
    对于(尺寸i=0;i
“我需要能够在数字数组中搜索与运行时输入的表达式匹配的值”

你的行为