#include<iostream>
#include <string>
#include <sstream>
#include <vector>

using namespace std;

int main() 
{
    string st;
    while (cin >> st) {
        istringstream is(st);
        string temp;
        vector<string> vec;
        while(getline(is,temp,';')) {
            vec.emplace_back(temp);
        }
        int x = 0, y = 0;
        for (int i = 0; i < vec.size(); i++) {
            //确定坐标移动的大小,[-99,99]
            int num = 0; //(横或纵)坐标移动的大小
            //若字符串为三位有效位,则第二和第三位是坐标移动的大小
            if((vec[i].size() == 3) && (vec[i][1] >='0') && (vec[i][1] <= '9') && (vec[i][2] >='0') && (vec[i][2] <= '9'))
            {
                num = (vec[i][1] - '0') * 10 + (vec[i][2] - '0');
            }
            //若字符串为两位有效位,则第二位是坐标移动的大小
            if((vec[i].size() == 2) && (vec[i][1] <= '9') && (vec[i][1] >= '0'))
            {
                num = (vec[i][1] - '0');
            }
            //若字符串为一位有效位,则无坐标移动
            if(vec[i].size() == 1)
            {
                num = 0;
            }
            //确定坐标移动的方向,左右上下
            switch(vec[i][0])
            {
                case 'A': x -= num;
                    break;
                case 'D': x += num;
                    break;
                case 'S': y -= num;
                    break;
                case 'W': y += num;
                    break;
                default:
                    break;
            }
        }
    cout << x << "," << y << endl;
    return 0;
    }
}

正则表达式regex???
substr用法,字符串类型题常用