StrinToIntのような文字列を整数に変換する関数を実装してみる
ちなみにatoiなど標準ライブラリーなどの関数を使うべきですが、純粋に文字列をint型にするのではなく、なにか似たような処理をする時のヒントになればと思います。
文字列の先頭から一文字取得して、数字に変換する。取得した文字を文字列から取り除く。文字列にまだ文字があれば、取得した数値を10倍する。
#include <iostream> #include <string> using namespace std; int string_to_int(string s) { int result = 0; while (s.length() != 0) { result += s[0] - '0'; s = s.substr(1, s.length() - 1); if (s.length() != 0) { result *= 10; } } return result; } int main() { string s = "123"; cout << string_to_int(s) + 111 << endl; // 234 return 0; }
| 固定リンク
「C/C++」カテゴリの記事
- コンピュータプログラミング言語調節可能おしゃれキャップ(2018.06.05)
- raspberry piでC++11を使えるようにする(2016.04.27)
- StrinToIntのような文字列を整数に変換する関数を実装してみる(2016.03.21)
- インライン化できない関数のラッパー関数などで関数呼び出しのオーバーヘッドを減らしたい(2016.03.03)
- C++ Builder/Delphiでフォーカスが別のコントロールにある時に強引にTEditに入力を戻す(2014.09.15)
この記事へのコメントは終了しました。
コメント