0

文字列配列と整数配列があります。文字列配列の要素を整数に変換し、整数配列に格納したいと考えています。私はこのコードを書きました:

string yuzy[360];
int yuza[360];

for(int x = 0;x<360;x++)
{
    if(yuzy[x].empty() == false)
    {

         yuza[x]=atoi(yuzy[x]);
         cout<<yuza[x]<<endl;
    }
    else
        continue;
}

このコードは次のエラーを返します: error: cannot convert 'std::string {aka std::basic_string}' to 'const char*' for argument '1' to 'int atoi(const char*)'

文字列の内容(-75dbm)をatoi関数に書き込むと正常に動作します。しかし、(yuzy[x]) と書くと、エラーが発生します。文字列配列でatoiをうまく機能させるにはどうすればよいですか? ありがとう。

4

3 に答える 3

8

atoi()C++ 文字列オブジェクトではなく、C 文字列 (char ポインター) を取ります。使用する

atoi(yuzy[x].c_str());

代わりは。

于 2012-08-03T07:21:16.780 に答える
3

の代わりに、C++11 をサポートしている場合は、 std::stoiおよび関連する関数をatoi使用できます。

yuza[x] = std::stoi(yuzy[x]);
于 2012-08-03T07:24:05.870 に答える
1

atoiCスタイルの文字列をパラメータとして受け入れるので、次を使用できますatoi(yuzy[x].c_str());

于 2012-08-03T07:23:34.053 に答える