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

C言語のstrlen関数とは?文字列の長さを取得する方法を解説

strlen関数とは

C言語の標準ライブラリ関数 size_t strlen(const char *str) は、引数に渡された文字列 str の長さを計算する関数です。戻り値には、文字列の終端を示すNULL文字('\0')は含まれません。

C言語では、文字型(char)の配列のことを「文字列」と呼びます。

文字列配列の宣言

文字列を格納するための配列は、以下のように宣言します。

char stringname [size];

たとえば「char a[50];」と宣言すると、最大50文字分の文字列を格納できる配列が作成されます。

文字列の初期化

文字列の初期化には、主に次の2つの方法があります。

1文字ずつ文字定数で初期化する

char a[10] = { 'H', 'e', 'l', 'l', 'o', '\0'};

文字列リテラルで初期化する

char a[10] = "Hello";

文字列へのアクセス

文字列の入出力には、制御文字列「%s」を使用します。「%s」を指定すると、NULL文字('\0')に到達するまでの文字列が読み込まれ、表示されます。

strlen()関数の構文

strlen()関数は、文字列の長さ、つまり文字列に含まれる文字数を返します。

int strlen (string name)

なお、実際の戻り値の型は size_t(符号なし整数型)です。strlen()関数を使用するには、ヘッダーファイル <string.h> をインクルードする必要があります。

サンプルプログラム1

以下のプログラムは、strlen()関数の基本的な使い方を示したものです。

#include <string.h>
main ( ){
    char a[30] = "Hello";
    int l;
    l = strlen (a);
    printf ("length of the string = %d", l);
    getch ( );
}

実行結果

上記のプログラムを実行すると、次の結果が表示されます。

length of the string = 5
Note : "\0" not counted as a character.

「Hello」は5文字なので、結果は5となります。終端のNULL文字「\0」は文字数としてカウントされない点に注意してください。

サンプルプログラム2

続いて、2つの文字列の長さを求めるCプログラムの例を紹介します。

#include<stdio.h>
#include<string.h>
int main(){
    int str1, str2;
    //文字列の初期化
    char string1[] = "Welcome To";
    char string2[] = {'T','U','T','O','R','I','A','L','\0'};
    //2つの文字列の長さを計算
    str1 = strlen(string1);
    str2 = strlen(string2);
    printf("string1 length is: %d \n", str1);
    printf("string2 length is: %d \n", str2);
}

実行結果

上記のプログラムを実行すると、次の結果が表示されます。

string1 length is: 10
string2 length is: 8

「Welcome To」は空白を含めて10文字、「TUTORIAL」は8文字です。このようにstrlen()関数を使えば、空白も1文字として数えた文字列の長さを簡単に取得できます。

  1. C言語のstrcmp()関数とは?文字列比較の基本と使い方を徹底解説

    C言語の標準ライブラリ関数 int strcmp(const char *str1, const char *str2) は、ポインタ str1 が指し示す文字列と、str2 が指し示す文字列を比較するための関数です。C言語において、文字型の配列は「文字列」と呼ばれます。まずは文字列の基本的な扱い方から確認していきましょう。文字列の宣言文字列(文字配列)の宣言は以下のように行います。char stringname [size];例えば、char string[50]; と宣言すれば、最大50文字の長さを持つ文字列を格納できます。文字列の初期化文字列の初期化には、主に次の2つの方法があります。1

  2. C言語のstrcpy()関数とは?基本構文と使い方をわかりやすく解説

    C言語のライブラリ関数 char *strcpy(char *dest, const char *src) は、src が指し示す文字列を dest にコピーするための関数です。 C言語では、文字の配列のことを「文字列」と呼びます。 文字列の宣言 文字列(文字配列)の宣言は、以下の形式で行います。 char stringname[size]; 例えば char string[50]; と宣言すると、最大50文字の文字列を格納できる配列が確保されます。 文字列の初期化 文字列の初期化には、主に以下の2つの方法があります。 1. 文字定数を使う方法 char string[10] = {H,