0

入力文字列が整数に変換される次のシナリオがあります。

Example: 
result = get_integer_from_string("100"); 
result == 100; // true

ライブラリを使用せずにこの関数を作成するにはどうすればよいですか? ライブラリを使用してそれを行うことができます。

4

3 に答える 3

7

次の手順を実行します:

  1. 入力文字列を解析します。
  2. 文字が数字かどうかをチェックします。
  3. いくつかのロジックを使用して、文字形式の数字を整数形式に変換します。
  4. また、入力が整数文字列でない場合に例外を実装できます。

コードを教えることはできません。学習には役立ちません。コードを自分で実装してみてください。非常に簡単です!!

于 2013-09-24T06:51:21.723 に答える
2

文字列を最後から最初までループします。各桁を取得し、10 進数値に変換します。最初の (逆方向ループで) を乗算し1、結果を格納します。秒を掛けて10、前の結果に加算します。等々。

于 2013-09-24T06:53:33.443 に答える
2

これはエラー状態になりやすいですが、文字列が有効な整数であれば機能するはずです:

int str2int(const char* str) {
    int result = 0;
    char* p = str;
    for (;;) {
        char c = *p++;
        if (c < '0' || c > '9')
            break;
        result *= 10;
        result += c - '0';
    }
    return result;
}

atoi()数字以外の処理を停止し、空の入力に対しては 0 を返します。

于 2013-09-24T06:53:48.830 に答える