0

C では、英数字のリスト文字を0-9取得して整数に変換する関数が必要です。

コード:

int strToInt(char string[])
{
    int i, intValue, result = 0;
    for (i = 0; string[i] > '0' && string[i] <= '9'; ++i)
    {
        intValue = string[i] - '0';
        result = ???
    }
    return result;
}

??? には何を入れますか?それを機能させるには?

4

3 に答える 3

2

これを試して:

result = result * 10 + intValue;

また:

string[i] > '0'

ループでforは厄介なようです-数字には数字の0が含まれる可能性がありますよね?あなたは使いたいかもしれません

string[i] >= '0'

代わりに、またはさらに良いことに、車輪を再発明する必要はありません。

#include <ctype.h>

for (i = 0; isdigit(string[i]); ++i)
于 2013-02-13T17:50:25.450 に答える
1

文字列は 10 進法で、基数は 10 で、文字列の各桁は基数 10 の位置を表します。つまり、あなたはやりたいと思います

 result = result * 10 + intValue;

「0」も数字なので、省略したくないことに注意してください。string[i] >= '0'

于 2013-02-13T17:52:04.470 に答える
0

base について話している場合は10、おそらく0数字としても含める必要があるため、

string[i] >= '0'

あなたのforループで。と通常の場所の値の計算

result = result*10 + intValue;
于 2013-02-13T18:25:09.717 に答える