#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用法,字符串类型题常用

京公网安备 11010502036488号