0

宿題を終わらせようとしているのですが、これが今日の午後以来、最後に理解できなかったものです。

たとえば、このような配列に文字列があり、変数にABCD24EFGその数値を取得して、どのタイプを初期化したいとします24int

1つの数字でそれを行うことができ、このように変換できます

number_holder = array_name[4] - '0';

そして私は入ります2が、number_holderどのように全体のようなものを取得してそれらを型24に変換できますか?int

4

3 に答える 3

3

有名なアルゴリズムを使用できます

n = 0
while (char = nextchar()) {
  n = n*10 + digit(char)
}

疑似言語で

于 2012-05-17T03:59:03.220 に答える
1

試す

    number_holder_1 = array_name[4] - '0';
    number_holder_2 = array_name[5] - '0';

両方の番号が表示されます。そして実行します

number = number_holder_1  * 10 + number_holder_2 ;

数値が2桁であってはならない場合は、forループを使用して必要な数値を取得できます。

于 2012-05-17T03:57:47.340 に答える
1

このロジックを使用できます。

number_holder=array_name[4] - '0';
number_holder=number_holder*10 + (array_name[5] - '0');

このようにして、ABCD243EFG、ABCD2433EFGなどの配列値を処理することもできます...

0〜9の整数のASCII値は48〜57です。したがって、これを使用して配列内の整数を検索します。

   number_holder=0;
   For (int i=0;i<arraylength;i++) 
    {
        if(array[i]<58 && array[i]>47)
        number_holder=number_holder*10+array[i] - '0';
    }    

結果はnumber_holderになります。

于 2012-05-17T03:58:48.417 に答える