C 言語で文字列を整数に変換する
胡金庫
2023年10月12日
この記事では、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
著者: 胡金庫
関連記事 - C String
- C で書式付き文字列を作成する
- C のヌル終了文字列
- C言語で空白を含む文字列をスキャンする
- C 言語で文字列を切り捨てる
- C 言語で strdup 関数を使用する
- C 言語で strsep 関数を使用する