文字列とそのアドレスへのポインタの配列を出力するCプログラム
まず、Cプログラミング言語でのポインターの配列を理解しましょう。
ポインタの配列:(文字列へ)
-
これは、要素が文字列の基本加算へのptrsである配列です。
-
次のように宣言および初期化されます-
char *a[ ] = {"one", "two", "three"};
ここで、a[0]は文字列「one」の基本加算へのポインタです。
a [1]は、文字列「two」の基本加算へのポインタです。
a [2]は、文字列「three」の基本加算へのポインタです。
利点
ポインタの配列の利点を以下に説明します-
-
文字列の配列および文字列へのポインタの配列で、文字の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です。
-
配列の左回転を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
-
コーナー要素とその合計を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