题解 | #汽水瓶#
坐标移动
http://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include<string.h> #include<stdio.h>
void stringStrip(char val, char **sourceStr, char *destStr) {
int i = 0;
for(i = 0; *(*sourceStr+i) != val; i++){
destStr[i] = *(*sourceStr+i);
}
*sourceStr = *sourceStr + i + 1 ;
}
int main(void) {
char buf[10000] = {0};
char destSrt[10] = {0};
char *leaveStr = NULL;
int shiWei = 0;
int geWei = 0;
int left = 0;
int right = 0;
int up = 0;
int down = 0;
int i = 0;
scanf("%s", buf);
leaveStr = buf;
while(1){
if(leaveStr[0] == '\0'){
break;
}
memset(destSrt,'\0', 10);
stringStrip(';', &leaveStr, destSrt);
// printf("%s\n", leaveStr);
if(strlen(destSrt)>3){
continue;
}
if(destSrt[0] != 'A' && destSrt[0] != 'S' && destSrt[0] != 'W' && destSrt[0] != 'D'){
continue;
}
if(strlen(destSrt) == 3){
shiWei = destSrt[1] - '0';
geWei = destSrt[2] - '0';
} else if(strlen(destSrt) == 2){
shiWei = 0;
geWei = destSrt[1] - '0';
}
if(shiWei > 9 || shiWei < 0 || geWei > 9 || geWei < 0){
continue;
}
if(destSrt[0] == 'A'){
left += shiWei * 10 + geWei;
} else if(destSrt[0] == 'S'){
down += shiWei * 10 + geWei;
} else if(destSrt[0] == 'W'){
up += shiWei * 10 + geWei;
} else if(destSrt[0] == 'D'){
right += shiWei * 10 + geWei;
} else {
continue;
}
// printf("%d %d\n", right - left, up - down);
}
printf("%d,%d", right - left, up - down);
return 0;
}
