ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

文字列の比較

文字列と部分文字列を比較するには複数の方法があります。

これらの関数は、文字配列および文字列で構成されたセル配列のどちらにも機能します。

文字列の等価性の比較

次の 4 つの関数のいずれかを使用して、2 つの入力文字列が同一かどうかを判断することができます。

  • strcmp は、2 つの文字列が同一かどうかを判別します。

  • strncmp は、2つの文字列の最初の n 文字が同一かどうかを判断します。

  • strcmpistrncmpi は、大文字と小文字の区別をしないこと以外は、strcmpstrncmp と同じです。

次の 2 つの文字列を考えてみましょう。

str1 = 'hello';
str2 = 'help';

文字列 str1str2 は同一ではないため、strcmp を呼び出すと 0 (false) が返されます。以下に例を示します。

C = strcmp(str1,str2)  
C =
    0

    メモ:   C 言語のプログラマにとって、これは MATLAB® 関数 strcmp と C 言語の関数 strcmp() との重要な違いです。C 言語では、2 つの文字列が等しい場合は 0 が返されます。

str1str2 の最初の 3 文字は同一であるため、3 以下の任意の値と共に strncmp を呼び出すと、1 が返されます。

C = strncmp(str1, str2, 2)
C =
    1

これらの関数は、文字列のセル配列でセル単位に機能します。次の 2 つの文字列のセル配列を考えてみましょう。

A = {'pizza'; 'chips'; 'candy'};
B = {'pizza'; 'chocolate'; 'pretzels'};

次に、文字列比較関数を適用します。

strcmp(A,B)
ans =
    1
    0
    0
strncmp(A,B,1)
ans =
    1
    1
    0

演算子を使用した等価性の比較

MATLAB 関係演算子は、文字配列に使用できます (比較する文字配列の次元が等しいか、一方がスカラーである場合)。たとえば、等価演算子 (==) を使用して、2 つの文字列のどの文字が一致しているかを判断できます。

A = 'fate';
B = 'cake';

A == B
ans =
    0   1   0   1

関係演算子のすべて (>>=<<===~=) では、対応する文字の値が比較されます。

文字列内の文字の分類

文字列内の文字を分類するには、次の 3 つの関数があります。

  1. isletter は、文字がアルファベット文字かどうかを判断します。

  2. isspace は、文字が空白 (ブランク、タブ、改行) かどうかを判断します。

  3. isstrprop は、文字列内の文字を確認し、指定した次のような分類と一致するかどうかを調べます。

    • アルファベット

    • 英数字

    • 小文字または大文字

    • 10 進数の桁

    • 16 進数の桁

    • 制御文字

    • グラフィックス文字

    • 句読点

    • 空白文字

たとえば、mystring という文字列を作成します。

mystring = 'Room 401';

isletter によって、文字列の各文字を調べ、mystring と同じ長さの出力ベクトルを作成します。

A = isletter(mystring)
A = 
    1   1   1   1   0   0   0   0

mystring の最初 4 文字はアルファベット文字であるため、A の最初の 4 要素は1 (true) です。

この情報は役に立ちましたか?