C言語入門講座。関数、サンプル集を参考にして、 C言語をマスターしよう。初心者から上級者まで。

文字列を数値に変換する(チェックなし)

2012.08.10

atof関数はdouble型の浮動小数点実数に、atoi関数はint型整数に、atol関数はlong int型整数に、文字列を変換します。指定された文字列が数値に変換できるか否かのチェックは行いません。

#include <stdlib.h>
double atof(const char *nptr);
int atoi(const char *nptr);
long atol(const char *nptr);

*nptrは数値に変換する文字列を指定します。

戻り値として、変換結果を返します。

プログラム 例

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

int main()
{
  char   *StrChomp(char *);       /* 改行削除 */
  char   buff[100];

  while(1) {
    printf('整数値に変換する文字列を入力してください ==> ');
    fgets(buff, 100, stdin);
    StrChomp(buff);

    if (strcmp(buff, 'end') != 0) {
      printf('%s --> %d\n', buff, atoi(buff));
    }
    else {
      break;
    }
  }

  return 0;
}

/* 改行削除 */
char *StrChomp(char *str)
{
  char   *str_p;;

  for (str_p = str; *str_p; ++str_p)
    ;

  if (*(str_p - 1) == '\n') {
    *(str_p - 1) = '\0';
  }

  return str;
}

例の実行結果

$ ./atox.exe
整数値に変換する文字列を入力してください ==> 123
123 --> 123
整数値に変換する文字列を入力してください ==> 0123
0123 --> 123
整数値に変換する文字列を入力してください ==>    123
   123 --> 123
整数値に変換する文字列を入力してください ==>  +123
 +123 --> 123
整数値に変換する文字列を入力してください ==> -123
-123 --> -123
整数値に変換する文字列を入力してください ==>   123.45
  123.45 --> 123
整数値に変換する文字列を入力してください ==> 0.123
0.123 --> 0
整数値に変換する文字列を入力してください ==> 0x123
0x123 --> 0
整数値に変換する文字列を入力してください ==> 1a2
1a2 --> 1
整数値に変換する文字列を入力してください ==> a1
a1 --> 0
整数値に変換する文字列を入力してください ==> 123*45
123*45 --> 123
整数値に変換する文字列を入力してください ==> end
$

関連記事