C 言語で文字列を整数に変換する

胡金庫 2023年10月12日
  1. C 言語で文字列を整数に変換する関数 atoi()
  2. C 言語で文字列を整数に変換する strtol() 関数
  3. C 言語で文字列を整数に変換する strtoumax() 関数
C 言語で文字列を整数に変換する

この記事では、C 言語で文字列を整数に変換する方法を紹介します。C 言語で文字列を整数に変換するには、atoi()strtoumax()strol() などのメソッドがあります。

C 言語で文字列を整数に変換する関数 atoi()

関数 atoi() は C 言語で文字列を整数に変換します。関数 atoi() は文字列の先頭の空白をすべて無視し、空白以降の文字を変換し、最初の非数値文字に到達した時点で停止します。

関数 atoi() は文字列の整数表現を返します。

関数 atoi() を利用するには、<stdlib.h> ヘッダをインクルードする必要があります。

atoi() の構文

int atoi(const char *str);

*str は整数に変換される文字列へのポインタです。

atoi() コード例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  int value;
  char str[20];
  strcpy(str, "123");
  value = atoi(str);
  printf("String value = %s, Int value = %d\n", str, value);

  return (0);
}

出力:

String value=123, Int value=123

C 言語で文字列を整数に変換する strtol() 関数

関数 strtol() は C 言語で文字列を長い整数に変換します。関数 strtol() は文字列の先頭の空白文字をすべて省略し、それ以降の文字を数値の一部として変換した後、最初の文字が数値ではないと判断した時点で停止します。

関数 strtol() は文字列の長い整数値表現を返します。

関数 atoi() を利用するには、<stdlib.h> ヘッダをインクルードする必要があります。

strtol() 構文

long int strtol(const char *string, char **laststr, int basenumber);
  • *string は長い整数に変換される文字列へのポインタです。
  • **laststr は変換を停止する位置を示すポインタです。
  • basenumber[2, 36] の範囲の基底値です。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  char str[10];
  char *ptr;
  long value;
  strcpy(str, " 123");
  value = strtol(str, &ptr, 10);
  printf("decimal %ld\n", value);

  return 0;
}

出力:

decimal 123

C 言語で文字列を整数に変換する strtoumax() 関数

関数 strtoumax() は、文字列の内容を指定された基数の整数の形で解釈します。最初の非空白文字までは空白文字を省略します。その後、有効な基底整数表現を形成するために可能な限り多くの文字を取り、それらを整数値に変換します。

strtoumax() は文字列の対応する整数値を返します。この関数は変換に失敗した場合は 0 を返します。

strtoumax() 構文

uintmax_t strtoumax(const char* string, char** last, int basenumber);
  • *string は長い整数に変換される文字列へのポインタです。
  • **last は変換を停止する位置を示すポインタです。
  • basenumber[2, 36] の範囲の基底値です。

strtoumax()

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  char str[10];
  char *ptr;
  int value;
  strcpy(str, " 123");
  printf("The integer value:%d", strtoumax(str, &ptr, 10));

  return 0;
}

出力:

The long integer value: 123
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - C String

関連記事 - C Integer