c++非正则表达式

首先将输入的字符串分割 采用getline(cin,char *s,char t)方法:

1.getline(输入流,装载输入流的缓冲区,分割符默认是,'\n'换行符)。本题是以';'进行分割的

  1. 构造函数识别全数字的方法isNum()

具体代码实现如下

#include <string.h>
using namespace std;
bool isNum(string s){
    int len=s.size();
    for(int i=0;i<len;i++){
        if('0'<=s[i]&&s[i]<='9')continue;
        else return false;
    }
    return true;
}
int main(){
    string s;
    pair<int,int>p(0,0);
   while(getline(cin, s, ';')){
       if(s.empty())continue;
          string s1=s.substr(1);
          
       if(isNum(s1)){
           switch(s[0]){
               case 'A':
                   p.first-=stoi(s1);
                   break;
               case 'D':
                   p.first+=stoi(s1);
                   break;
               case 'W':
                   p.second+=stoi(s1);
                   break;
               case 'S':
                   p.second-=stoi(s1);
                   break;
               default:
                   break;
           }
       }
   }
        cout<<p.first<<","<<p.second;
         return 0;
}