上記の例では、文字列の長さ NS は6です。
このチュートリアルでは、最初に、の使用方法を示します。 ユーザー定義関数 文字列の長さを計算するために、組み込みのライブラリ関数を示します strlen() 。また、の使用法を示します のサイズ 文字列リテラルの演算子。
ユーザー定義関数を使用した文字列の長さ
文字列の文字数を返すユーザー定義関数を作成できます。
//Example1.c
#含む
intstringLength((char *NS)。
{{
int私=0;
その間((NS[私] != ' 0')。私++;
戻る私;
}
int主要(()。
{{
charNS[30]= 'ストリング';
printf (('文字列strの長さは=>%dですNS'、stringLength((NS)。)。;
戻る 0;
}
ここでは、whileループを i = 0 遭遇しなくなるまで ‘ 0’ キャラクター。の値 私 によって増加します 1 whileループの各反復で。ループが終了すると、 私 文字列の長さです。
組み込みライブラリ関数を使用した文字列の長さ
組み込みライブラリ関数 strlen() 文字列の長さを決定するためにも使用できます。
strlen()関数:
ヘッダーファイル:
ストリング。NS構文:
size_t strlen ((const char *NS)。口論: この関数は、charへの型ポインターの引数を取ります。
戻り値: この関数は文字列の長さを返します NS 。ご了承ください size_t 符号なし整数の単なるエイリアスです。
//Example2.c#含む
#含む
int主要(()。
{{
charstr1[30]=「文字列配列」;
char *str2;
char *str3;
str2=str1;
str3= 「ストリングポインタ」;
printf (('文字列str1の長さは=>%ldですNS'、 strlen ((str1)。)。;
printf (('文字列str2の長さは=>%ldですNS'、 strlen ((str2)。)。;
printf (('文字列str3の長さは=>%ldですNS'、 strlen ((str3)。)。;
printf (('文字列の長さ'文字列リテラル'は=>%ldNS'、 strlen ((「文字列リテラル」)。)。;
戻る 0;
}
ここでは、文字列配列、文字列ポインタ、文字列リテラルをstrlen関数に渡し、関数は文字列の長さを返します。
sizeof演算子を使用した文字列の長さ
使用することもできます のサイズ 文字列長の演算子(文字列リテラルのみ)。ただし、「 0」文字もカウントされるため、この演算子によって返される値から1を引く必要があります。配列とポインターの場合、sizeof演算子は、それぞれ割り当てられた配列とポインターのサイズを返します。
//Example3.c#含む
int主要(()。
{{
charstr1[30] = 'ストリング';
char *str2=str1;
printf (('の長さ 'ストリング'は=>%dNS'、((のサイズ(('ストリング')。 - 1)。)。;
printf (('str1配列の割り当てサイズは=>%dですNS'、のサイズ((str1)。)。;
printf (('str2ポインタのサイズは=>%dですNS'、のサイズ((str2)。)。;
戻る 0;
}
ここでは、9行目で、文字列リテラルSTRINGを渡し、「 0」文字を含むサイズを取得します。したがって、1を減算して、文字列の実際のサイズを取得します。
配列をsizeof演算子に渡すと、割り当てられた配列のサイズ(30)が返され、文字ポインターを渡すと、ポインターのサイズが返されます。
結論
したがって、このチュートリアルでは、さまざまな方法で文字列の長さを計算する方法を示しました。コードでは、自分に最も適した方法を使用できます。