Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語で文字列を整数に変換する方法を解説

C言語で文字列から数値を抽出して整数に変換する手順

C言語のプログラミングでは、文字列の中から特定の部分を取り出して整数に変換したい場面がよくあります。ここでは、映画タイトル「The Matrix(1999)」から公開年の「1999」を抽出し、整数として扱う方法を、3つのステップに分けてわかりやすく解説します。

ステップ1:strchr()関数で左括弧「(」の位置を特定する

まず、strchr()関数を使って、文字列内の左括弧「(」が最初に現れる位置へのポインタを取得します。これにより、括弧以降の文字列を簡単に操作できるようになります。

char *name="The Matrix(1999)";
char *ps;
ps=strchr(name,'(');

このコードを実行すると、変数psには「(1999)」という文字列へのポインタが格納されます。

ステップ2:括弧内の各文字をchar型配列にコピーする

次に、forループを使って括弧内の各文字(数字)を、あらかじめ用意したchar型配列に1文字ずつコピーしていきます。ループは括弧自体をスキップするため、インデックス1から開始する点に注意してください。

char y[5]=""; int p;
for (p=1;p<strlen(ps+1);p++) {
    y[p-1]=ps[p];
}
y[4]='\0';

最後に、文字列の終端を示すヌル文字「\0」を配列の末尾に代入することで、yは「1999」という正しい文字列として扱えるようになります。

ステップ3:atoi()関数で文字列を整数に変換する

最後に、atoi()関数(ASCII to Integer)を使用して、抽出した文字列を整数型の値に変換します。

year=atoi(y);
printf("year=%d",year);

このコードを実行すると、出力結果は「year=1999」となり、文字列が正しく整数に変換されたことが確認できます。

応用例:条件に合う映画リストの作成

この手法を応用すれば、たとえば「2008年より前に公開された映画だけを抽出して、文字列の配列を作成する」といった処理も実現できます。文字列から年を整数として取り出せば、数値の比較演算が可能になるため、フィルタリング処理が格段に簡単になります。

なお、より堅牢なエラー処理が必要な場合は、atoi()の代わりにstrtol()関数を使うと、変換失敗時の検出ができるため、実務ではこちらが推奨されることもあります。

  1. GSONライブラリを使ってArrayListをStringに変換する方法【Android開発】

    GSONとはGSONはGoogleが提供するJavaライブラリで、JavaオブジェクトをJSONへ、またJSONをJavaオブジェクトへ相互に変換するために使用されます。内部ではシリアライズ(直列化)とデシリアライズ(非直列化)の仕組みに基づいて動作しています。この記事では、GSONライブラリを使用してArrayListを文字列(String)に変換する方法を、サンプルコード付きの手順で解説します。実装手順ステップ1:新規プロジェクトの作成まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目をすべて入力して

  2. 【Android開発】カラー整数(int)を16進数カラーコード文字列に変換する方法

    Androidアプリ開発では、色情報がint型の整数値として扱われることが多く、これを「#FF5733」のような16進数のカラーコード文字列に変換したいケースがあります。本記事では、Integer.toHexString()メソッドを使ってカラー整数を16進文字列に変換する方法を、実際のサンプルプロジェクトとともにわかりやすく解説します。変換の仕組みAndroidでは、色はARGB形式(アルファ・赤・緑・青)の32ビット整数として表現されます。そのため、-16895234のような負の値も有効なカラー整数です。Integer.toHexString(int)で16進文字列に変換した後、先頭2桁は