Arduino strcmp 関数
このチュートリアルでは、Arduino の strcmp()
関数を使用して 2つの文字列を比較する方法について説明します。
Arduino strcmp()
関数
strcmp()
関数は、Arduino の 2つの文字列を比較します。strcmp()
関数は、2つの文字列に存在する文字の ASCII 値を比較し、文字の ASCII 値に応じて 3 種類の出力値を返します。
キーボードの文字には、文字 a
の ASCII 値が 65
のように一意の ASCII 値があります。以下は、strcmp()
関数の基本的な構文です。
output = strcmp(string1, string2);
上記の構文は、2つの文字列に存在するすべての文字が同じである場合、0
を返します。2 番目の文字列の文字と一致しない最初の文字列の文字の ASCII 値が小さい場合、負の数を返します。2 番目の文字列に存在する文字よりも大きく、最初の文字列の一致しない文字が 2 番目の文字列の文字よりも大きい ASCII 値を持っている場合、正の数を返します。
最初の 2 文字の ASCII 値の差がゼロの場合、strcmp()
関数は次の文字に移動し、以下同様に続きます。すべての文字が比較されると、0
も返されます。2つの文字列が等しいことを示します。
2 文字の ASCII 値がゼロに等しくない場合、関数は停止し、現在一致していない文字の ASCII 値の差を返します。
たとえば、2つの同じ文字列を定義し、Arduino の strcmp()
関数を使用してそれらを比較してみましょう。
以下のコードを参照してください。
int output;
void setup() {
char* string1 = "hello";
char* string2 = "hello";
output = strcmp(string1, string2);
Serial.begin(9600);
Serial.println(output);
}
void loop() {}
出力:
0
strcmp()
関数の入力は、定数文字列である必要があります。上記のコードでは、Arduino のシリアルモニターを使用して、strcmp()
関数の出力を表示しました。
Serial.begin()
関数はシリアルモニターを初期化するために使用され、Serial.println()
関数は指定された値をシリアルモニターウィンドウに出力します。
if
ステートメントのような条件ステートメントで strcmp()
関数の出力を使用して、出力がゼロに等しい場合のように特定のタスクを実行することもできます。シリアルモニターに 2つの文字列が同等。
Arduino の他の関数を使用して、compareTo()
と equals()
関数のような 2つの文字列を比較することもできます。Arduino での文字列比較の詳細については、このリンクを確認してください。