1. ホーム
  2. c

[解決済み] C 言語で char 配列を int 数に変換する。

2022-03-03 12:16:24

質問

char array[]のように変換したい。

char myarray[4] = {'-','1','2','3'}; //where the - means it is negative

つまり、整数値である「-1234」となるはずです。 を使って 標準 のライブラリは C . 私はそれを行うためのエレガントな方法を見つけることができませんでした。

確かに'Ⅻ'は付けられますね。

どのように解決するのですか?

個人的に嫌いなのは atoi 関数を使用します。私なら sscanf :

char myarray[5] = {'-', '1', '2', '3', '\0'};
int i;
sscanf(myarray, "%d", &i);

これは非常に標準的なもので、その中の stdio.h ライブラリ :)

そして私の意見では、これは atoi また、末尾に数字以外の文字を付けることも可能です。

EDIT こんな素敵なものを見つけました 質問 このサイトでは、3種類の方法を比較しながら解説しています。 atoi , sscanfstrtol . また、より詳細な洞察がなされています。 sscanf (実際には *scanf 関数)を使用します。

EDIT2 が嫌いなのは私だけではなさそうです。 atoi 関数を使用します。以下は リンク を説明する回答があります。 atoi 関数は非推奨であり、新しいコードでは使用しないでください。