C 基本講座

関数で文字列⇔数値の変換を行う

LinkedInラーニングの無料トライアルを今すぐ試そう

無料で視聴する すべての加入プランを見る
このレッスンでは、標準ライブラリ関数を使って、文字列を数値に変換する方法と数値を文字列に変換する方法ついて説明します。
講師:
07:28

字幕

このレッスンでは標準ライブラリ関数を使って文字列を数字に変換する方法と数値を文字列に変換する方法について説明します。C 言語の標準ライブラリ関数には文字列を数値に変換する関数が多数用意されています。それらのうち、標準 C の関数はこの表に示すものです。プログラムを使ってこれらの関数の使い方を確認してみましょう。これらの関数を使用するのにはstdlib.h の include が必要です。atoi、atol、atof 関数は単純に数値に変換可能な文字列をint 型、long 型、double 型に変換して返却します。実行してみましょう。実行するとこのように文字列をint 型、long 型、double 型に変換して返してくるのでこのように表示することができます。これらの関数は符号も解釈することができます。また、atof 関数は指数表記の文字列も変換することができます。実行してみましょう。このように符号や指数表記もきちんと解釈されています。これらの関数に数値に変換不可能な文字列を与えると変換可能な文字列までを変換します。実行してみます。このように?の前までを変換して表示しています。もし全く変換不可能な文字列を与えると、これらの関数は0へ返却します。 さらに数値変換の際にエラー検出をする関数もあります。strtol 関数は long 型に、strtoul 関数は unsigned long 型に、strtod 関数はdouble 型に文字列を変換するのですが文字列中に変換不可能な文字があった場合にはその文字列のポインタを引数に格納してくれるのでエラーとなる文字列を知ることができます。ではこの例で実行してみましょう。今 str_l にはこのような文字列が格納されています。strtol 関数は long 型に変換可能な文字列 1234 を数値に変換して返却します。そして変換不可能な?を指すポインタを引数 e に格納します。同様に str_d にはこのような文字列が格納されています。strtod 関数はdouble 型に変換可能な文字列、123.45 を数値に変換して返却します。そして変換不可能な?を指すポインタを引数 e に格納します。また、strtol 関数とstrtoul 関数は8進数や 16 進数のように奇数を指定することもできます。strtoul 関数でこのように16 進数を指定して実行してみましょう。この文字列の abc123 は16 進数に変換可能ですので変換してこのようにul_value にstrtoul 関数は返却しています。 xyz は 16 進数に変換不可能ですのでe にポインタを返します。ところで数値に文字列を変換する関数の方はないのでしょうか?atoi が ASC to integer ですから反対の integer to ASC でitoa という関数があっても良さそうですね。実はあるのですが、この関数はサポートしていないコンパイラもあり、標準関数ではありません。けれども C 言語の標準関数には書式付きで文字列に出力を行うsprintf という関数があります。sprintf は出力先が画面ではなく文字列になるだけで使い方は printf と同じです。ですから書式指定をすることにより、数値だけではなく文字も文字列も一度に変換して1つの文字列に格納することができます。sprintf 関数を使用するのにはstdio.h の include が必要です。sprintf を使ってみましょう。この例では %s、%4d、%02d、%02d、%d でそれぞれこの引数を変換して文字列 str に格納します。str を表示してみると、このように文字列が得られることがわかります。sprintf があるのですからsscanf もありそうですね。 こちらもちゃんと標準関数として用意されています。sscanf 関数は文字列 str から書式フォーマットに従ってscanf 関数と同様の変換を行った入力を指定されたアドレスに格納します。要は scanf の入力がキーボードからではなく文字列になると考えてください。今ここでは sprintf 関数で編集した文字列 str をsscanf の引数に指定して配列や、それからこれらの変数に書式変換して格納しています。実行してみましょう。この sprintf で編集した文字列を逆に変換した結果が得られました。このレッスンでは標準ライブラリ関数を使って文字列を数値に変換する方法と数値を文字列に変換する方法について説明しました。

C 基本講座

C言語はUNIXというOSを記述するために開発されたプログラミング言語で、組み込みシステムの開発を中心に今も使われています。このコースでは簡単なプログラムを作成しながら、C言語の基本的な文法を学びます。データ型や制御文などの基礎的な文法からポインタや構造体といったC言語の特徴的な内容まで幅広く取り上げます。よく使われる標準ライブラリ関数も数多く紹介します。

5時間45分 (60 ビデオ)
現在、カスタマーレビューはありません…
ソフトウェア・トピック
プラン加入者限定
発売日:2017年11月05日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。