2012-01-22 23 views
0

私はちょうどCプログラミングの初心者です。プログラミングの課題を解決しながら、unsigned charの配列をintegerに変換する必要が出てきました。例については文字の配列を整数に変換するにはどうすればよいですか?

unsigned char x[]="567"; 
unsigned char y[]="94"; 

今、私はxyの両方に整数値を追加する必要があります。つまり、

int sum=661; 

これを行う最も簡単な方法は何ですか?

答えて

3

あなたが探しているのはatoi()です。

+0

この方法で格納された任意の大きな数値を処理する予定がない限り。そして、あなたは*あなたが小学校で学んだ... –

+0

はしかし、atoi関数を使用して、私はこのエラー」のconst char型にはunsigned char *を変換できません得たように、小数点がアド・アンド・キャリー実装する必要が – James

+0

あなたは離れてunsignednessキャストすることができます;。それは」doesnの文字を格納するために 'char'を使用する場合、T(バイトとは対照的に)多くの意味。 –

0

標準ライブラリを使用する場合は、少なくとも2つのオプションがあります。最初はatoi()の機能からstdlib.hであり、2番目はsscanf()の機能からstdio.hです。

ATOI()

char number_string[] = "47"; 
int number; 

number = atoi(number_string); 

のsscanf()

char number_string[] = "47"; 
int number; 
int return; 

return = sscanf(number_string, "%d", &number); 
/* it would be good idea to check the return value here */ 

sscanf()はあなたに優れたエラー処理を提供します:ここで

がその例です。 sscanf()の戻り値は、いくつの項目が正常に読み取られたか(いくつの変数が満たされたか)を決定します。入力が失敗した場合は、EOFが返されます。

atoi()は、有効な変換が実行できない場合は0を返します。

関連する問題