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

C言語のstrspn()関数とは?使い方とサンプルコードを解説

strspn()関数とは

C言語のstrspn()関数は、第1引数の文字列(string1)の先頭から順に調べ、第2引数の文字列(string2)に含まれる文字だけで構成されている部分、つまり「接頭辞」の長さを計算するための関数です。そして、その部分文字列の長さをsize_t型として返します。

この関数を使用するには、ヘッダーファイル<string.h>をインクルードする必要があります。

構文

size_t strspn(const char *string1, const char *string2);

パラメータ

  • string1: 調査対象となる文字列へのポインタ
  • string2: 一致するかどうかを判定する文字の集合を含む文字列へのポインタ

戻り値

string1の先頭から、string2に含まれる文字のみで構成される連続した部分の長さが返されます。先頭の1文字でも一致しなかった場合は0が返ります。

サンプルプログラム

ここでは、C言語におけるstrspn()関数の使用例を紹介します。

#include <stdio.h>
#include <string.h>
int main() {
   const char s1[] = "Helloworld!";
   const char s2[] = "Hello";
   int length = strspn(s1, s2);
   printf("The length of string : %d", length);
   return 0;
}

実行結果

The length of string : 5

動作の解説

この例では、s2には「H」「e」「l」「o」という4種類の文字が含まれています。strspn(s1, s2)は、s1の先頭からこれらの文字だけで構成される部分を調べます。

s1は「Helloworld!」という文字列で、先頭の「Hello」まではすべてs2に含まれる文字です。しかし、6文字目の「w」はs2に存在しないため、そこで走査が終了します。その結果、一致した部分の長さである「5」が出力されます。

なお、strspn()は文字の集合との照合を行う関数である点に注意してください。部分文字列全体の一致を調べるわけではなく、「先頭から何文字までが指定した文字集合に含まれているか」を返します。用途に応じて、類似の関数であるstrcspn()などと使い分けるとよいでしょう。

  1. CSSの相対的な長さ単位(em・rem・vwなど)をわかりやすく解説

    CSSにおける相対的な長さ単位とは、他の長さ(親要素やビューポートなど)を基準として長さを指定するための単位です。固定値(pxなど)と異なり、画面サイズやユーザーの設定に応じて柔軟に拡縮できるため、レスポンシブデザインには欠かせない存在です。 主な相対的な長さ単位の一覧 番号単位と説明 1emその要素自身のフォントサイズを基準とします。例えば「4em」は現在のフォントサイズの4倍を意味します。 2ex現在のフォントの「x-height」(小文字のxの高さ)を基準とします。 3ch数字「0」の幅を基準とします。等幅フォントでのレイアウト調整に便利です。 4remルート要素(html要素)

  2. 角度と半径から弧の長さを求める方法|C++での計算例をわかりやすく解説

    この記事では、円の半径と中心角が与えられたときに、弧の長さを求める方法を解説します。プログラミング(C++)を使った具体的な実装例もあわせて紹介するので、数学的な考え方とコードの両方を一度に理解できます。弧の長さとは?円周上の一部分を「弧」と呼びます。円全体の円周の長さは 2πr で表されますが、中心角が360度未満の場合、その角度に対応する部分だけの長さ、つまり弧の長さを求める必要があります。たとえば、下図のように半径 r の円があり、中心角 x(度数法)が与えられているとします。ここで求めたいのは、この角に対応する弧の長さ L です。弧の長さを求める公式中心角が360度のとき、弧の長さは円