如何把将字符串中的数字转换成数字

主要采用的是库函数的方法,isdigit,stoi.
isdigit可以判断单个字符是否是数字,stoi可以将多个字符(多位数,复数)转换成数字。
判断数字可以结合isdigit给出对应的函数。

点击查看代码
 bool isNumber(const std::string& token) {
        // Check if the token is a number (positive or negative)
        return (isdigit(token[0]) || (token.size() > 1 && isdigit(token[1]) && token[0] == '-'));
    }
后面一个判断条件是用来判断负数。

stoi这样用

点击查看代码
stk.push(stoi(tokens[i]));}

这里给出题目案例

点击查看代码
class Solution {
public:
    int evalRPN(vector<string>& tokens) {
stack<int>stk;
int sz=tokens.size();
for(int i=0;i<sz;i++){
if(isNumber(tokens[i])){
    stk.push(stoi(tokens[i]));}
    else{
        int num1=stk.top();
        stk.pop();
        int num2=stk.top();
        stk.pop();
        char ch=tokens[i][0];
        switch(ch){
            case '+':
            
            stk.push(num2+num1);
            break;
            case '-':
            
            stk.push(num2-num1);
            break;
            case '*':
            stk.push(num2*num1);
            break;
            case '/':
            stk.push(num2/num1);
            break;
        }
        
    }


}
return stk.top();
    }
    private:
    bool isNumber(const std::string& token) {
        // Check if the token is a number (positive or negative)
        return (isdigit(token[0]) || (token.size() > 1 && isdigit(token[1]) && token[0] == '-'));
    }
};
posted @ 2024-01-14 17:01  yun-che  阅读(80)  评论(0)    收藏  举报