1. ホーム
  2. c++

[解決済み] std::stringをintに変換するにはどうしたらいいですか?

2022-03-15 09:43:08

質問

文字列をint型に変換したいのですが、ASCIIコードのことではありません。

簡単に説明すると、方程式が文字列として渡されます。それを分解し、正しくフォーマットして、連立方程式を解くのです。さて、そうはいっても、文字列をint型に変換することはできない。

文字列は(-5)か(25)などの書式になることは分かっているので、間違いなくint型です。しかし、文字列からそれを取り出すにはどうしたらいいのでしょうか?

1つの方法として、文字列をfor/whileループで実行し、数字をチェックし、それ以降のすべての数字を取り出し、先頭に「-」があるかどうかを調べ、あれば、intに-1を掛けることを考えていました。

こんな小さな問題なのに、ちょっと複雑すぎるような気もしますが。何かアイデアはありますか?

解決方法は?

C++11では、新しい変換関数がいくつか用意されています。 std::string を数値型に変換します。

そのため、代わりに

atoi( str.c_str() )

を使用することができます。

std::stoi( str )

ここで str はあなたの番号として std::string .

あらゆる種類の数字に対応するバージョンがあります。 long stol(string) , float stof(string) , double stod(string) ,... 見る http://en.cppreference.com/w/cpp/string/basic_string/stol