题解 | #坐标移动#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include<ctype.h>
int main(void) {
char s[10000] = "";
char ch[100] = "";
int i = 0;
int j = 0;
int row = 0;
int col = 0;
int times = 1;
int num = 0;
scanf("%s", s);
for(i = 0,j = 0; i < strlen(s);i++) {
times = 1;
num = 0;
//找到;,提取分号前面的字符串,赋值给数组ch
if(s[i] != ';') {
ch[j++] = s[i];
}else {
ch[j] = 0;//将数组变成字符串
//已经找到字符串,现在处理字符串:
//先将数字部分的字符剥离,判断是否数字,只要字符有一个不是数字,该字符串不处理
//如果是数字,就字符转换成数字,最后根据第一个字符是'A','S','D','W',相加减
for(j = strlen(ch)-1; j >= 1; j--) {
if(isdigit(ch[j]) == 0) {
num = 0;
break;
}
num += (ch[j] - '0')*times;
times *= 10;
}
j = 0;
if(ch[0] == 'A') {
row-=num;
}
else if(ch[0] == 'S') {
col-=num;
}
else if(ch[0] == 'W') {
col += num;
}
else if(ch[0] == 'D') {
row += num;
}
}
}
printf("%d,%d",row,col);
return 0;
}