题解 | #坐标移动#
https://www.nowcoder.com/practice/119bcca3befb405fbe58abe9c532eb29
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x = 0;
int y = 0;
int i = 0;
char str[10001] = {0};
scanf("%s", str);
char *p = str;
char tmp[10001] = {0};
while (*p != '\0') {
if (*p != ';') {
tmp[i] = *p;
p++;
i++;
} else {
tmp[i] = *p;
if (!((i <= 3 && i >= 2) && ((tmp[1] >= '1') && (tmp[1] <= '9')) && (((tmp[2] >= '0') && (tmp[2] <= '9')) || tmp[2] == ';'))) {
p++;
i = 0;
memset(tmp, 0, sizeof(tmp));
continue;
} else {
if (tmp[0] == 'A') {
x -= atoi(&tmp[1]);
} else if (tmp[0] == 'D') {
x += atoi(&tmp[1]);
} else if (tmp[0] == 'W') {
y += atoi(&tmp[1]);
} else if (tmp[0] == 'S') {
y -= atoi(&tmp[1]);
}
p++;
i = 0;
memset(tmp, 0, sizeof(tmp));
}
}
}
printf("%d,%d", x, y);
return 0;
}
#include <stdlib.h>
int main()
{
int x = 0;
int y = 0;
int i = 0;
char str[10001] = {0};
scanf("%s", str);
char *p = str;
char tmp[10001] = {0};
while (*p != '\0') {
if (*p != ';') {
tmp[i] = *p;
p++;
i++;
} else {
tmp[i] = *p;
if (!((i <= 3 && i >= 2) && ((tmp[1] >= '1') && (tmp[1] <= '9')) && (((tmp[2] >= '0') && (tmp[2] <= '9')) || tmp[2] == ';'))) {
p++;
i = 0;
memset(tmp, 0, sizeof(tmp));
continue;
} else {
if (tmp[0] == 'A') {
x -= atoi(&tmp[1]);
} else if (tmp[0] == 'D') {
x += atoi(&tmp[1]);
} else if (tmp[0] == 'W') {
y += atoi(&tmp[1]);
} else if (tmp[0] == 'S') {
y -= atoi(&tmp[1]);
}
p++;
i = 0;
memset(tmp, 0, sizeof(tmp));
}
}
}
printf("%d,%d", x, y);
return 0;
}