2017-02-14 12 views
1

基本的に私の関数は文字列内のすべての文字を調べ、各文字を別の文字列に挿入するので、最初の文字列が逆になります。私はオンラインを見てきましたが、この問題の答えはもう役に立たないようです。なぜなら、5年以上前のものか、どこかに間違っているからです。文字列に文字を挿入することはできません

long reverse_num(long n){ 

    string new_str = ""; 
    string my_str = to_string(n); 
    int my_int; 

    for (unsigned i = 0; i < my_str.size(); ++i){ 
     new_str.insert(0, char my_str[i]); 
    } 
    my_int = stol(new_str); 

    return my_int; 
} 

所与のエラーがある:私のコードは次のように進む '文字' new_str.insert(0、CHAR my_strに[I])の前に、一次式期待します。

私は間違っていますか? ありがとう!

+0

うわー...誰かが実際にはC++の人工的に制限された言語ではなく、実際のC++を使ってみようとしています! –

+0

ハハハ、ええ、P:私は自分で答えを出すことができないとき、あるいは少なくとも私が間違っていることの考えを得ることができないとき、ただ嫌いです。 – Alex

+0

あなたの質問は、非常に低い担当者が投稿した「C++」質問のほとんどよりも優れています。 –

答えて

1

まず、挿入式にcharタイプを指定しないでください。また、ここでやっていることと一致する文字列挿入関数はありません。これらの

basic_string& insert(size_type pos, size_type n, charT c); 
iterator insert(const_iterator p, charT c); 

だからあなたの挿入行があるべき1:あなたはおそらく、これらのいずれたい

new_str.insert(0, 1, my_str[i]); 
new_str.insert(new_str.begin(), my_str[i]); 
+0

Omg、とても簡単!それは今の魅力のように働いています。どうもありがとうございます! – Alex

0

あなたのタイプキャスト構文が悪かったが、あなたはに文字を挿入しようとしているように見えますstd :: string。これは、あなたが行くように見えた機能です:

&挿入(size_typeインデックス、size_type数、チャートCHを)のbasic_string

http://en.cppreference.com/w/cpp/string/basic_string/insert

試し

new_str.insert(0、1、my_strに[I])。

あなたはまた、http://en.cppreference.com/w/cpp/algorithm/reverse

STDを使用している可能性::リバース(my_str.begin()、my_str.end());

+0

ありがとう!ええ、私はその逆を見ました、私はちょうどそれをハードなやり方でやってみようと思っていました。 – Alex

関連する問題