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

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

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

strncmp

文字列のはじめの n 文字の比較 (大文字と小文字を区別する)

構文

TF = strncmp(string,string,n)
TF = strncmp(string,cellstr,n)
TF = strncmp(cellstr,cellstr,n)

説明

TF = strncmp(string,string,n) は、2 つの文字列で最初の n 文字が同一かどうか比較します。この関数は、等価であればスカラー論理値 1 を、不等価であればスカラー論理値 0 を返します。

TF = strncmp(string,cellstr,n) は、文字列の最初の n 文字と、文字列からなるセル配列の各要素の最初の n 文字を比較します。この関数は、cellstr 入力と同じサイズの論理配列を返します。この入力では、論理値 1 が等価を表します。最初の 2 つの入力引数の順序は重要ではありません。

TF = strncmp(cellstr,cellstr,n) は、文字列のセル配列の各要素をもう 1 つの文字列の同じ要素と比較します。strncmp は、これら文字列の最初の n 文字のみと一致させようと試みます。関数からは、いずれかの入力配列と同じサイズの論理配列を返します。

入力引数

string

単一の文字列または文字列の n 行 1 列の配列。

cellstr

文字列のセル配列。

n

比較する文字の最大数。スカラー、double 整数値でなくてはなりません。

出力引数

TF

両方の入力が文字配列の場合、TF はスカラー論理値です。両方の配列のサイズとコンテンツが等しい場合、この値は論理値 1 (true) で、等しくない場合は、論理値 0 (false) です。

入力のいずれか、あるいは両方が文字列のセル配列である場合、TF は論理値 1 と 0 の配列です。この配列は入力セル配列と同じサイズであり、一致する入力配列の要素に論理値 1 (true) を、一致しない要素に論理値 0 (false) を返します。

strncmp 関数を試行する前に、strcmp を使用して、2 つの入力文字列の簡単な比較を実行します。最初の 13 文字のみが同じであるため、strcmp は論理値 0 を返します。

strcmp('Kansas City, KS', 'Kansas City, MO')
ans =
     0

再度比較を行いますが、今回は strncmp を使用して、比較する文字数を指定します。

chars2compare = length('Kansas City, KS') - 2
ans =
    13
strncmp('Kansas City, KS', 'Kansas City, MO', chars2compare)
ans =
     1
 

10 個の MATLAB® 関数のリストから、camera という文字を使用する関数を探します。

function_list = {'calendar' 'case' 'camdolly' 'circshift' ...
                 'caxis' 'camtarget' 'cast' 'camorbit' ...
                 'callib' 'cart2sph'};

strncmp(function_list, 'cam', 3)
ans =
    0    0    1    0    0    1    0    1    0    0

function_list{strncmp(function_list, 'cam', 3)}
ans =
   camdolly
ans =
   camtarget
ans =
   camorbit
 

2 つの 5 行 10 列の文字配列 str1 および str2 は、行 4、列 3 の要素以外は同一です。線形インデックスでは、この要素は 14 です。

str1 = ['AAAAAAAAAA'; 'BBBBBBBBBB'; 'CCCCCCCCCC'; ...
        'DDDDDDDDDD'; 'EEEEEEEEEE']
str1 =
    AAAAAAAAAA
    BBBBBBBBBB
    CCCCCCCCCC
    DDDDDDDDDD
    EEEEEEEEEE

str2 = str1;
str2(4,3) = '-'
str2 =
    AAAAAAAAAA
    BBBBBBBBBB
    CCCCCCCCCC
    DD-DDDDDDD
    EEEEEEEEEE

MATLAB は、配列を線形順に比較するため (つまり、列対列の比較の後に行対行の比較を行うため)、関数 strncmp は、最初の 13 要素が同一であることのみを検出します。

str1   A B C D E A B C D E A B C D E
str2   A B C D E A B C D E A B C - E
                                 |
                             element 14

strncmp(str1, str2, 13)
ans =
     1

strncmp(str1, str2, 14)
ans =
     0

詳細

すべて展開する

ヒント

  • 関数 strncmp は、文字データの比較を想定しています。数値データの比較に使用する場合、論理値 0 を返します。

  • 大文字と小文字を区別せずに文字列の比較を行う場合は、strncmpi を使用します。

  • 両方の文字列の先頭と末尾の空白は、すべて明示的に比較対象に含まれます。

  • 関数 strncmp が返す値は、C 言語で通常使用される値とは異なります。

  • strncmp は、国際文字セットをサポートします。

参考

| | | | |

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