检查输入字符串是否为数字,是否为C ++,如果是,则将其转换为int(正则表达式?)

伍斯特郡

我觉得这是一个非常基本的问题,但是我已经在互联网上搜索了一个多小时,但没有找到答案。

我正在编写一个将输入作为字符串的文本接口。如果输入字符串是数字,我想将字符串转换为整数并将其压入我创建的堆栈中。

文本界面的代码如下:

#include <iostream>
#include "textInterface.h"
#include "Stack.h"
#include <string>
#include <regex>

using namespace std;

void Interface(){
    Stack stack = Stack();

    string input;

    cout << "Please enter a number or operation";
    cin >> input;


     if (input == "."){
         cout << stack.pop();
     } //this pops the stack

     if (input == "+"){
         int a = stack.pop();
         int b = stack.pop();
         int c = a + b;
         stack.push(c);
     } //pops the first two things off the stack, adds them, and pushes the result

     if (input == "-"){
        int a = stack.pop();
        int b = stack.pop();
        int c = a - b;
        stack.push(c);
     } //pops the first two things off the stack, subtracts them, and pushes the result

     if (input == "*"){
        int a = stack.pop();
        int b = stack.pop();
        int c = a * b;
        stack.push(c);
     } //pops the first two things off the stack, multiplies them, and pushes the result

     if (input == ".s"){
         cout << stack.count();
     } //returns the size of the stack

     if (regex_match(input, "[0-9]")){
         int num;
         stringstream convert(input);
         convert >> num;
         stack.push(num);
     } //This is the part with the error!!! 

}

就像我说的,我想检查输入是否为数字,如果是,则将字符串转换为int并将其压入堆栈。我以前使用过正则表达式,但是已经有一段时间了,并且它在Python中使用(我对C ++还是陌生的)。我知道我的regex_match格式不正确,是否有人对如何使其正确无任何建议,或者有阅读资源的建议?

不要检查它是否看起来像整数,然后将其转换为整数。而是将其转换为整数,看看是否可行。使用std::stoi(或,stolstoll,取决于您期望数字的大小。)(英寸<string>):请参见此处

如果无法将字符串转换为指定大小的整数,则会引发异常,因此您必须在内执行该函数try(如果您是pythonista,则应熟悉该样式。)

另外,如果有一个数字但没有占用整个字符串(即结尾的垃圾),则size_t指向第二个参数的指针将设置为第一个未使用字符的索引,因此如果要检查整个数字string是一个数字,您还应该检查以确保返回的索引是输入字符串的大小。

如果您对异常不满意,即使是标准库抛出的异常,也可以只使用基础的标准c函数strtol和好友。它们具有相似的接口,但是使用结合设置的任意值返回errno来尝试通信失败。就我个人而言,我认为异常接口不太友好,但与往常一样,口味也有所不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

正则表达式:检查封装的字符串是否为数字

来自分类Dev

我如何检查输入是否为数字?如果它的字符串提示错误

来自分类Dev

检查字符串是否为数字,然后将该数字转换为 int?

来自分类Dev

正则表达式检查字符串是否为字母数字,并用逗号分隔或单个字母数字字符串

来自分类Dev

在提交时检查正则表达式验证,如果所有输入字段为空,则将其集中

来自分类Dev

用于检查字符串是否为整数的正则表达式

来自分类Dev

检查字符串是否为正则表达式的其他方法

来自分类Dev

检查字符串是否以数字结尾,如果为true,则获取数字

来自分类Dev

Bash正则表达式检查字符串的第一个字符是否为数字

来自分类Dev

Bash正则表达式检查字符串的第一个字符是否为数字

来自分类Dev

Java正则表达式检查字符串是否为有效的数字格式(逗号和小数点放置)

来自分类Dev

如何检查最后一个子字符串是否为值,如果是则将其删除

来自分类Dev

如何检查字符串在Python中是否为有效的正则表达式?

来自分类Dev

正则表达式检查字符串是否包含非数字失败

来自分类Dev

使用正则表达式检查字符串是否以数字开头

来自分类Dev

检查字符串是否以正则表达式数字开头

来自分类Dev

在C编程中检查字符串是否全为带正则表达式的字母数字

来自分类Dev

检查输入是否为字符串(仅4个字符),如果不再次返回输入

来自分类Dev

VB.Net-是否可以在一个IF语句条件下检查字符串是否为IsNumeric,以及是否将其转换为要比较的数字?

来自分类Dev

用正则表达式确定字符串是否为单个重复字符

来自分类Dev

如果没有正则表达式,是否可以将日志字符串分隔为所需模式的变量?

来自分类Dev

C中的正则表达式,检查字符串是否包含特定字符

来自分类Dev

验证字符串是否为正则表达式模式的开始

来自分类Dev

如何验证字符串是否为正则表达式?

来自分类Dev

测试字符串是否为空的正则表达式

来自分类Dev

验证字符串是否为正则表达式模式的开始

来自分类Dev

使用模式匹配从正则表达式中提取Int,而无需提取为String,然后将其转换为Int

来自分类Dev

C# 检查字符串长度是否为 188 如果不是

来自分类Dev

如何在C中编写正则表达式以查找字符串是否为十六进制

Related 相关文章

  1. 1

    正则表达式:检查封装的字符串是否为数字

  2. 2

    我如何检查输入是否为数字?如果它的字符串提示错误

  3. 3

    检查字符串是否为数字,然后将该数字转换为 int?

  4. 4

    正则表达式检查字符串是否为字母数字,并用逗号分隔或单个字母数字字符串

  5. 5

    在提交时检查正则表达式验证,如果所有输入字段为空,则将其集中

  6. 6

    用于检查字符串是否为整数的正则表达式

  7. 7

    检查字符串是否为正则表达式的其他方法

  8. 8

    检查字符串是否以数字结尾,如果为true,则获取数字

  9. 9

    Bash正则表达式检查字符串的第一个字符是否为数字

  10. 10

    Bash正则表达式检查字符串的第一个字符是否为数字

  11. 11

    Java正则表达式检查字符串是否为有效的数字格式(逗号和小数点放置)

  12. 12

    如何检查最后一个子字符串是否为值,如果是则将其删除

  13. 13

    如何检查字符串在Python中是否为有效的正则表达式?

  14. 14

    正则表达式检查字符串是否包含非数字失败

  15. 15

    使用正则表达式检查字符串是否以数字开头

  16. 16

    检查字符串是否以正则表达式数字开头

  17. 17

    在C编程中检查字符串是否全为带正则表达式的字母数字

  18. 18

    检查输入是否为字符串(仅4个字符),如果不再次返回输入

  19. 19

    VB.Net-是否可以在一个IF语句条件下检查字符串是否为IsNumeric,以及是否将其转换为要比较的数字?

  20. 20

    用正则表达式确定字符串是否为单个重复字符

  21. 21

    如果没有正则表达式,是否可以将日志字符串分隔为所需模式的变量?

  22. 22

    C中的正则表达式,检查字符串是否包含特定字符

  23. 23

    验证字符串是否为正则表达式模式的开始

  24. 24

    如何验证字符串是否为正则表达式?

  25. 25

    测试字符串是否为空的正则表达式

  26. 26

    验证字符串是否为正则表达式模式的开始

  27. 27

    使用模式匹配从正则表达式中提取Int,而无需提取为String,然后将其转换为Int

  28. 28

    C# 检查字符串长度是否为 188 如果不是

  29. 29

    如何在C中编写正则表达式以查找字符串是否为十六进制

热门标签

归档