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

文字列とそのアドレスへのポインタの配列を出力するCプログラム


まず、Cプログラミング言語でのポインターの配列を理解しましょう。

ポインタの配列:(文字列へ)

  • これは、要素が文字列の基本加算へのptrsである配列です。

  • 次のように宣言および初期化されます-

char *a[ ] = {"one", "two", "three"};

ここで、a[0]は文字列「one」の基本加算へのポインタです。

a [1]は、文字列「two」の基本加算へのポインタです。

a [2]は、文字列「three」の基本加算へのポインタです。

文字列とそのアドレスへのポインタの配列を出力するCプログラム

利点

ポインタの配列の利点を以下に説明します-

  • 文字列の配列および文字列へのポインタの配列で、文字の2次元配列のリンクを解除します。ストレージ用の固定メモリ・サイズはありません。

  • 文字列は必要な数のバイトしか占有しないため、スペースを無駄にすることはありません。

文字列へのポインタの配列とアドレスも出力する概念を示すCプログラムを以下に示します-

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring string and pointers, for loop variable//
   int i;
   char *a[5]={"One","Two","Three","Four","Five"};
   //Printing values within each string location using for loop//
   printf("The values in every string location are : \n");
   for(i=0;i<5;i++){
      printf("%s\n",a[i]);
   }
   //Printing addresses within each string location using for loop//
   printf("The address locations of every string values are : \n");
   for(i=0;i<5;i++){
      printf("%d\n",a[i]);
   }
}

出力

上記のプログラムを実行すると、次の結果が得られます-

The values in every string location are:
One
Two
Three
Four
Five
The address locations of every string values are:
4210688
4210692
4210696
4210702
4210707

例2

別の例を考えてみましょう。

以下に示すのは、文字列へのポインタの配列の概念を示すCプログラムです-

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring string and pointers//
   char string[10]="TutorialPoint";
   char *pointer = string;
   //Printing the string using pointer//
   printf("The string is : ");
   while(*pointer!='\0'){
      printf("%s",*pointer);
      pointer++;
   }
}

出力

上記のプログラムを実行すると、次の結果が得られます-

The string is: TutorialPoint
です。
  1. 配列の左回転をCプログラムのO(n)時間とO(1)空間で出力します。

    いくつかのサイズnと複数の整数値の配列が与えられているので、与えられたインデックスkから配列を回転させる必要があります。 -のようなインデックスkから配列を回転させたい 例 Input: arr[] = {1, 2, 3, 4, 5}    K1 = 1    K2 = 3    K3 = 6 Output:    2 3 4 5 1    4 5 1 2 3    2 3 4 5 1 アルゴリズム START Step 1 -> Declare functio

  2. コーナー要素とその合計をCプログラムの2次元行列に出力します。

    サイズが2X2の配列を考えると、配列に格納されているすべてのコーナー要素の合計を出力することが課題になります。 行「r」と列「c」が0から行と列を開始する行列mat[r][c]を想定すると、そのコーナー要素は次のようになります。 mat [0] [0]、mat [0] [c-1]、mat [r-1] [0]、mat[r-1][c-1]。ここでのタスクは、これらのコーナー要素を取得し、それらのコーナー要素を合計することです。つまり、mat [0] [0] + mat [0] [c-1] + mat [r-1] [0] + mat [r-1] [c-1]、結果を画面に印刷します。 例 Input