C言語で文字列の長さを求めるプログラムの書き方を解説
C言語において、文字列とは実際にはヌル文字「\0」で終端される1次元の文字配列のことです。そのため、ヌル終端文字列には、文字列を構成する文字の後にヌル文字が続く形でデータが格納されています。
文字列の長さを求めるには、ループ処理を用いて「\0」文字が見つかるまで先頭から文字数を数えていく必要があります。
具体例
入力 − naman
出力 − 文字列の長さは 5
解説 − 文字列の各インデックスを先頭から順に走査し、文字列の終端を意味するヌル文字「\0」に到達するまで処理を繰り返します。
サンプルコード
#include <stdio.h>
#include <string.h>
int main() {
char string1[] = {"naman"};
int i = 0, length;
while(string1[i] != '\0') {
i++;
}
length = i;
printf("文字列の長さは %d", length);
return 0;
}実行結果
文字列の長さは 5
strlen関数を使う方法
なお、string.hヘッダーには標準ライブラリ関数strlen()が用意されており、上記と同じ処理を1行で実現することもできます。
#include <stdio.h>
#include <string.h>
int main() {
char string1[] = {"naman"};
int length = strlen(string1);
printf("文字列の長さは %d", length);
return 0;
}このように、ヌル文字まで自分でループを回してカウントする方法と、strlen関数を利用する方法のどちらでも、文字列の長さを簡単に取得できます。仕組みを理解するためには自作のループ処理を、実用的な開発ではstrlen関数を使い分けるのがおすすめです。
-
C言語で一次方程式の解を求めるプログラムの作り方
C言語では、ソフトウェア開発の基本的な手法(要件定義→分析→アルゴリズム設計→実装→テスト)を応用して、1変数の一次方程式を解くプログラムを作成できます。この記事では、その流れに沿って具体的な手順を解説します。 数学的な背景 1変数の一次方程式は一般に ax + b = 0 の形式で表されます。これを x について解くと、次のようになります。 x = -b / a つまり、a と b の値が分かれば、x の値を機械的に計算できることになります。 要件 方程式は ax + b = 0 の形式で与えられること a と b はユーザーからの入力値とし、x の値を求めることを目的とする 分析 この
-
連結リスト(リンクリスト)の長さを求めるC言語プログラム
連結リスト(リンクリスト)は動的メモリ割り当てを利用するデータ構造であり、要素の追加や削除に応じてサイズが柔軟に変化します。連結リストは「ノード」と呼ばれる要素の集合として定義され、各ノードはデータ部とリンク部(次のノードへのポインタ)の2つの部分で構成されています。データ・リンク・連結リストの関係は、以下のように表現できます。連結リストの種類連結リストには主に以下の4種類があります。単方向連結リスト(シングルリンクリスト)双方向連結リスト(ダブルリンクリスト)循環単方向連結リスト循環双方向連結リスト再帰を使って長さを求めるロジック本記事では、再帰呼び出しを利用して連結リストの長さ(ノード数)