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

C の Itoa 関数をマスターする:実践ガイド

C の Itoa 関数をマスターする:実践ガイド

C プログラミング言語は 50 年以上前に開発されました。それ以来、プログラミングの世界で絶大な人気を獲得してきました。構造の単純さ、関数、移植性、効率的なメモリ管理などの特徴により、他の言語よりも優れています。他にもさまざまな特徴があるにもかかわらず、C の関数は、多くのユーザーが堅牢なコード スニペットを作成するのに役立つ最も顕著な資産です。

さらに、itoa は、データ型コンバーターとして機能する、広く使用されている非標準関数です。データ型 int を入力として受け取り、それを文字列に変換します。しかし、その使い方を知らない方も多いのではないでしょうか。したがって、このガイドでは、手間をかけずに C で itoa 関数を使用する方法を簡潔に説明します。

基本から始めましょう。 itoa 関数の簡単な構文は次のとおりです。

int main() {

    int num =12345;
    文字 str[20];
    itoa(num, str, 10);
    printf("整数:%d\n文字列:%s\n", num, str);
    0 を返す;

}

指定されたプログラムの詳細は次のとおりです。

<オル>
  • num は整数です
  • str は文字です
  • 10 は低音です
  • それでは、先に進んでプログラムを作成し、itoa 関数を実装しましょう。たとえば、入力された数値を文字列に変更するプログラムを作成する必要があります。

    #include

    #include

    void itoa(int num, char *str, int Base) {

        int i =0;
        int isNegative =0;

        if (数値 ==0) {
            str[i++] ='0';
            str[i] ='\0';
            戻る;
        }

        if (数値 <0 &&ベース !=10) {

            isNegative =1;
            番号 =-番号;
        }

        while (数値 !=0) {
            int rem =num %base;

            str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';

            数値 =数値 / 基数;
        }

        if (isNegative &&ベース ==10)
            str[i++] ='-';

        str[i] ='\0';

        int 開始 =0;
        int 終了 =i - 1;

        while (開始 <終了) {

            文字温度 =str[開始];
            str[開始] =str[終了];
            str[end] =温度;
            開始++;
            終わり--;
        }
    }

    int main() {
        整数;
        printf("整数を入力してください:");
       
        if (scanf("%d", &num) !=1) {
            fprintf(stderr, "入力が無効です。整数を入力してください。\n");
            EXIT_FAILURE を返します。
        }

        int max_size =snprintf(NULL, 0, "%d", num) + 1;
        char *str =(char *)malloc(max_size);

        if (str ==NULL) {
            fprintf(stderr, "メモリ割り当てに失敗しました\n");
            EXIT_FAILURE を返します。
        }

        itoa(num, str, 10);

        printf("整数:%d\n文字列:%s\n", num, str);

        free(str);

        0 を返す;

    }

    前のプログラムでは、itoa (int num, char *str, int Base) が itoa 関数です。さらに、次の構文は、入力数値もゼロの場合、結果にゼロを直接割り当てます。

    if (num ==0) {

        str[i++] ='0';
        str[i] ='\0';
        戻る;

    }

    入力数値が負で、基数も 10 ではない場合、次のプログラム行は負のフラグを設定します。

    if (数値 <0 &&ベース !=10) {

        isNegative =1;
        num =-num;

    次のループはすべての数字を処理し、対応する文字に変換します。したがって、10 より大きい基数の場合、プログラムは 10 ~ 15 の数字として「a」~「f」の文字を使用します。

    }

    while (num !=0) {

        int rem =num %base;

        str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';

        数値 =数値 / 基数;
       
    }

    数値が元々負で底が 10 の場合、プログラムは結果の文字列に負の符号を追加します。

    if (isNegative &&Base ==10)

        str[i++] ='-';

    次の行は結果文字列を終了し、変換プロセス中に数字が逆順で取得されるため、結果文字列を逆にします。

    str[i] ='\0';

    // 文字列を反転します

    int start =0;

    int 終了 =i - 1;

    while (開始 <終了) {

        文字温度 =str[開始];
        str[開始] =str[終了];
        str[end] =温度;
        開始++;
        終了--;

    }

    したがって、プログラムは整数を入力として受け取り、文字列表現にメモリを割り当てます。その後、itoa を呼び出して整数を文字列に変換し、元の整数を出力します。最後に、割り当てられたメモリを解放します。たとえば、プログラムに番号を付けてみましょう。

    C の Itoa 関数をマスターする:実践ガイド

    ただし、整数以外の数値を入力すると、プログラムは次の結果を表示します。

    C の Itoa 関数をマスターする:実践ガイド

    結論

    これは、C でitoa 関数を簡単に実装して使用する方法です。整数を文字列に変換する複数の関数を含む詳細な例を使用しました。これは単なる例ですが、itoa 関数をさまざまな関数と組み合わせて、素晴らしいプログラムを作成できることを覚えておいてください。

    著者について

    C の Itoa 関数をマスターする:実践ガイド

    プラティーク ジャンギッド

    個人的にも仕事上でも熱心な Linux ユーザーであり、Linux の世界の最新情報を常に探求し、読者と共有しています。


    1. Cのfillpoly()関数

      コンセプト ヘッダーファイルgraphics.hには、三角形、長方形、五角形、六角形などのポリゴンを描画して塗りつぶすために実装されたfillpoly()関数が含まれています。したがって、この関数にはdrawpoly()と同じ引数が必要です。 構文 void fillpoly( int number, int *polypoints ); この場合、numberは(n + 1)点の数を示します。ここで、nはポリゴン内の頂点の数であり、polypointsは(n * 2)整数のシーケンスを指します。 入力 arr[] = {320, 150, 400, 250, 250, 350, 32

    2. Cプログラムはどのように実行されますか?

      ここでは、Cプログラムがシステムでどのように実行されるかを見ていきます。これは基本的にCプログラムのコンパイルプロセスです。 次の図は、Cソースコードの実行方法を示しています。 上の図には、さまざまなステップがあります- Cコード −これはあなたが書いたコードです。このコードはプリプロセッサセクションに送信されます。 前処理 −このセクションでは、プリプロセッサフ​​ァイルがコードに添付されています。 stdio.h、math.hなどのさまざまなヘッダーファイルを使用しています。これらのファイルはCソースコードで添付され、最終的なCソースが生成します。 (「#include」、「