URI문제 c++과 c의 차이

  • tkdgur4989
    tkdgur4989

      #include <iostream>
      #include <string>
      using namespace std;
    
      int main() {
          int count;
          cin >> count;
    
          while(count--) {
              string input,output;
              char out[3];
              int j;
              cin >> input;
              for(int i=0; i<input.length(); ++i) {
                  if(input.at(i) == '%') {
                      /*out[0] = input.at(i+1);
                      out[1] = input.at(i+2);
                      out[2] = 0;
                      sscanf(out, "%x", &j);*/
                      output.push_back(input.at(i+1));
                      output.push_back(input.at(i+2));
                      sscanf(output.c_str(), "%x", &j);
                      printf("%c", j);
                      i+=2;
                  }
                  else {
                      cout << input.at(i);
                  }
              }
              cout << endl;
          }
          return 0;
      }
    


    중간의 주석으로한 부분으로 실행하면 정답이 나오는데

      out[0] = input.at(i+1);
      out[1] = input.at(i+2);
      out[2] = 0;
      sscanf(out, "%x", &j);
    

    이부분으로 하면 안되네요

      output.push_back(input.at(i+1));
      output.push_back(input.at(i+2));
      sscanf(output.c_str(), "%x", &j);
    

    두 코드의 차이가 무엇인지 궁금하네요


    5년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.