web-dev-qa-db-ja.com

Cでcharを整数に変換する方法は?

可能性のある重複:
単一の文字をintに変換する方法
Cの整数から文字へ

charintに変換する方法を教えてください。

char c[]={'1',':','3'};

int i=int(c[0]);

printf("%d",i);

これを試してみると、49になります。

89
Cute

昔は、ほとんどのコンピューターがASCIIを使用していると想定できたので、

int i = c[0] - '0';

しかし、最近のユニコードでは、それは良い考えではありません。コードを非ASCIIコンピューターで実行する必要がある場合、それは決して良い考えではありませんでした。

編集:ハックのように見えますが、明らかにisが動作するように標準によって保証されています。 @Earwickerに感謝します。

152
Paul Tomblin

標準関数atoi()は、おそらくあなたが望むことをするでしょう。

「atoi」を使用した簡単な例:

#include <unistd.h>

int main(int argc, char *argv[])
{
    int useconds = atoi(argv[1]); 
    usleep(useconds);
}
36
Frans Bouma