[[problem:URI]]질문드립니다. ㅠㅠ leesangwon5911 #include <stdio.h> #include <string.h> int main(void) { //freopen("input.txt", "r", stdin); int a = 0; scanf("%d", &a); while (a--) { char arr[81]; char tmp[7][4] = { "%20","%21","%24" ,"%25" ,"%28" ,"%29" ,"%2a" }; char tmp2[7] = {' ','!','$','%','(',')','*'}; int i = 0; int j = 0; int k = 0; scanf("%s", arr); while (arr[i] != '\0') { while (j < 7) { if (!(strncmp(&arr[i], &tmp[j][0], 3))) { arr[i] = tmp2[j]; memmove(&arr[i + 1], &arr[i + 3], strlen(arr) - (i + 3)); arr[strlen(arr) - 2] = '\0'; if (j == 3) { k = 0; while (k < 7) { if (!(strncmp(&arr[i], &tmp[k][0], 3))) { arr[i] = tmp2[k]; memmove(&arr[i + 1], &arr[i + 3], strlen(arr) - (i + 3)); arr[strlen(arr) - 2] = '\0'; } k++; } } } j++; } j = 0; i++; } printf("%s\n", arr); } return 0; } %25 -> %로 %2520 ->단순 ' ' 로 %25%25 -> %%로 변환해봤는데 안돼네요.. 저기에 중간에 주석치면 %2520 -> %20 으로도 해보고 %2525 -? %25 로 나오게할수도있는데 머가 문제인지 모르겠어요..ㅠ 9년 전
1개의 댓글이 있습니다. Being 이스케이핑이란 건, 표현할 수 없는 문자를 표현하기 위한 방법입니다. C/C++에서 '\' 문자를 써서 이스케이핑하는 것처럼요. "\\" 라는 문자열 리터럴은 실제로는 \이라는 한 문자를 표현하기 위한 것이고, "\n"이라는 문자열 리터럴은 실제로는 줄바꿈 문자 하나를 표현하기 위한 것이죠. 그러면 C/C++에서 "\\n" 이라고 쓰면 어떻게 되나요? 이 문제의 경우에도 동일합니다. 차근히 다시 잘 생각해 보세요. 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
leesangwon5911
%25 -> %로
%2520 ->단순 ' ' 로
%25%25 -> %%로 변환해봤는데 안돼네요..
저기에 중간에 주석치면
%2520 -> %20 으로도 해보고
%2525 -? %25 로 나오게할수도있는데 머가 문제인지 모르겠어요..ㅠ
9년 전