2017-06-16 8 views
-2

ここで問題の入出力形式です。 []と{}は、この場合にのみ許容される中括弧です。 この問題では、空白文字をなくすことができます。 解決策は、各エントリが1行に対応する文字列のリストを返す必要があります。文字列には "\ n"文字が含まれていてはなりません。文字列をJson形式に変換し、文字列のベクトルを返したい場合

入力:["foo", {"bar":["baz",null,1.0,2]}]

出力:ここ

[ 
    "foo", 
    { 
     "bar": 
     [ 
      "baz", 
      null, 
      1.0, 
      2 
     ] 
    } 
] 

iがセグメンテーションエラーを取得しています私のコードですが、私は、C++への新しいプログラムのエラーを見つけることができません

vector<string> Solution::prettyJSON(string A) { 

    int tabcount=0,j=0; 
    vector<string> res; 
    cout<<"0st check \n"; 

    for(int i=0;A[i];i++){ 


     if(A[i]=='{' || A[i]=='['){ 

      if(i==0) 
       res[j].push_back(A[i]); 
      else{  
       j++; 
       res[j].insert(0,tabcount,'\t');  
       res[j].push_back(A[i]); 
      } 

      j++; 
      tabcount++; 
     } 
     else { 
      if(A[i]=='}' || A[i]==']'){ 

       tabcount--; 
       j++; 
       res[j].insert(0,tabcount,'\t'); 
       res[j].push_back(A[i]); 

       j++; 
       } 
      else{ 
       if(A[i]==','){ 

        res[j].push_back(A[i]); 
        j++; 
        res[j].insert(0,tabcount,'\t'); 

        } 
        else{ 
         res[j].push_back(A[i]); 

        } 
      } 
     } 
    } 

    return res; 
} 
を助けてください
+0

セグメンテーションエラーは、あなたがメモリの一部の領域にアクセスしていること所有していない残りの部分を – deeiip

+0

出力形式が間違っているとデバッグする必要がありますが、その部分が次の行に保存される代わりに '\ n'文字はありません。適切なくぼみを付けて –

答えて

0

第1に、C++ JSONの解析、操作、およびprettificationライブラリが多数ありますが、その中にはコンパクトで使いやすいものもあります1つのヘッダーを取ります。それらのうちの1つを再利用することを検討してください。自分で作成しようとするときに見つけることができる多くの落とし穴を避けるのに役立ちます。


ここでは、これをデバッグしていないと仮定しています。 Visual Studioは、例えば、クラッシュが発生する上での正確なラインを示しているが、それを実行する:

res[j].push_back(A[i]); 

iがゼロであるので、これは非常に最初の文字です。 jもゼロであるが、さらに重要なことは、のサイズがresであることは、である。これは、存在しないエントリをresで参照しようとしていることを意味します。これはもちろん、アプリケーションがクラッシュする原因になります。

res.size()以上の場合は、この問題が発生し、resにエントリをプッシュしないため、このコードは機能しません。これは、おそらくあなたがベクトルの使用に慣れていないことを示していますが、これは実際にあなたにそれを行う方法を教える場所ではありません。とにかく

、私はforループとj++のすべてのインスタンスの後に前res.push_back("");を追加した場合、最小限の修正として、私はこの結果を得る:

[ 
"foo", 

     { 
"bar": 
       [ 
"baz", 
         null, 
         1.0, 
         2 
       ] 

     } 

] 
関連する問題