【C言語】文字列の文字数を取得する方法を2パターン紹介

  • URLをコピーしました!

C言語で文字列の文字数を取得する方法は、2パターンあります。

  • sizeof 演算子を使用する
  • strlen 関数を使用する

まずは、それぞれの違いについて紹介します。

スクロールできます
目的講座名到達点レベル/前提想定時間こんな人に評価
まずはC/C++を一気に俯瞰一週間で身につくC/C++言語C/C++の基礎を通しで学び、ゲーム/組み込み/OS基礎にも触れる初心者〜初級13時間C/C++をまとめて体験したい/ポインタでつまずいた経験がある
図解で“ゼロから”C言語イメージでわかる!基礎知識ゼロからのC言語。エンジニアが教えるC言語完全攻略コース。図解中心で基礎→配列/構造体/ポインタまで。終盤はネットワーク等の応用も超初心者〜初級7時間活字が苦手/イメージで理解したい/まずはCだけに集中したい
図解+演習で基礎を速習【C言語基礎マスター速習講座】知識ゼロからポインタまで完全習得!豊富な図解と演習問題で難しい概念も完全理解!“動きの理解”重視でゼロ→ポインタまで。演習問題で定着超初心者〜初級16時間図解多め+演習で短期に基礎固めしたい
目次

sizeof 演算子とstrlen 関数の違い

違いは、出力される文字数です。

sizeof 演算子は、ヌル文字を含み、実際の文字数から1文字多い文字数が出力されます。

一方strlen 関数は、実際の文字数が出力されます。

違いについてわかったところで、

それぞれの実際にどう使われているのかみていきましょう。

sizeof演算子で文字列の文字数を取得

sizeof 演算子とは、変数やデータ型の使用メモリサイズを算出するものです。

sizeof 演算子の詳しい使い方について知りたい方は、以下をみてください。

sizeof 演算子の使用例

文字列”HELLO”(5文字)の文字数を取得してみました。

#include<stdio.h>

int main(void)
{
	// 文字列の定義
	char moji[] = "HELLO";

	printf("NULL文字を含む文字サイズ: %d\n", sizeof(moji));

	return 0;
}

実行結果

NULL文字を含む文字サイズ: 6

実際の文字数(5文字)よりひと文字多く(6文字)出力されました。

そのため、出力される文字数からひと文字引けば、実際の文字数を取得可能です。

strlen 関数で文字列の文字数を取得

その名の通り、文字列(string)の長さ(length)を取得する関数です。

strlen 関数の使用例

sizeof 演算子同様に、文字列”HELLO”(5文字)の文字数を取得してみました。

strlen 関数は、「string.h」をインクルードして使用します。

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

int main(void)
{
	// 文字列の定義
	char moji[] = "HELLO";

	printf("文字列の文字数: %d\n", strlen(moji));

	return 0;
}

実行結果

文字列の文字数: 5

実際の文字数(5文字)が出力されました。

どう使い分けるの?

文字列の文字数を取得する方法を2パターン紹介しました。

でもこれどっちを使った方がいいの?って思っている人もいると思います。

私は、sizeof 演算子とstrlen 関数の以下の用途で、使い分けをおすすめします。

演算子と関数用途
sizeof 演算子文字列をコピーする
strlen 関数文字列の文字数を取得する

まとめ

文字列の文字数を取得する方法を2パターン紹介しました。

ですが、文字列の文字数を取得したい場合は、strlen関数を使用することをおすすめします!

これまで読んでくださりありがとうございます。

参考(おすすめ教材)

一週間で身につくC/C++言語
楽天ブックス
¥2,728 (2025/10/20 11:37時点 | 楽天市場調べ)
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次