C言語

【C言語】文字列の長さを取得するプログラム


プログラミング初心者向けの練習問題の一つとして「文字列の長さを求めるプログラムの作成」がありますが、これを実装する方法は、以下の2通りが考えられます。

  • for又はwhileループを活用する
  • strlen関数を利用する

本記事では、それぞれのアプローチでの実装例を紹介していきます。

ループを活用したプログラム

まずはfor又はwhileループを活用して文字列の長さを求める方法について解説します。

プログラミングの練習問題としては、このアプローチでプログラムを作成することを求められるかもしれません。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 任意の文字列を入力させる(入力された文字列は配列へ格納)
  2. ループを回して先頭から末尾まで文字数をカウントする

なお、上記の手順において、ループが終了する条件は「ヌル文字が見つかる」ことになります。

実装例

上記の手順に従ってプログラムを作成します。使用する言語はC言語です。

#include <stdio.h>

int main(void){

  int counter = 0;
  char str[100];

  /* 任意の文字列を入力
  (※char型の配列へ格納する) */
  printf("Enter a string : ");
  scanf("%s", str);

  /* ループを回して配列の要素数をカウント
  (※ヌル文字が見つかるまで) */
  for (int i=0; str[i]!='\0'; i++) {
    counter++;
  }
  printf("> %d characters.", counter);

  return 0;
}

このプログラムを実行すると以下の出力結果が得られます。

Enter a string : moji
> 4 characters.

strlen関数を利用したプログラム

次はstrlen関数を利用して文字列の長さを求める方法について解説します。

こちらのアプローチの方が実装は簡単であるため、プログラミングの練習問題で条件指定されている場合など以外はこちらを採用しましょう。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 任意の文字列を入力させる(入力された文字列は配列へ格納)
  2. strlen関数を用いて文字数を取得する

なお、strlen関数を利用する場合はinclude <string.h>の記述が必須になります。

実装例

上記の手順に従ってプログラムを作成します。使用する言語はC言語です。

#include <stdio.h>
#include <string.h>

int main(void){

  int length;
  char str[100];

  /* 任意の文字列を入力
  (※char型の配列へ格納する) */
  printf("Enter a string : ");
  scanf("%s", str);

  /* strlen関数を用いて文字数を取得 */
  length = strlen(str);
  printf("> %d characters.", length);

  return 0;
}

このプログラムを実行すると以下の出力結果が得られます。

Enter a string : moji
> 4 characters.