strncmp関数
strncmp関数は文字列を先頭から指定文字数分比較してその結果を返します。
試しにこのプログラムをArduino UNOで実行すると、「ABC123」と「ABCDEF」と言う2つの文字列を先頭から5文字比較した結果が最初に、3文字比較した結果が後になってシリアルモニタ上に「NotMatch : Match」と表示されます。
char A[7] = "ABC123"; char B[7] = "ABCDEF"; void setup() { Serial.begin(9600); } void loop() { if (strncmp(A, B, 5) == 0) { //AとBの文字列を先頭から5文字比較 Serial.print("Match"); } else { Serial.print("NotMatch"); } Serial.print(" : "); if (strncmp(A, B, 3) == 0) { //AとBの文字列を先頭から3文字比較 Serial.println("Match"); } else { Serial.println("NotMatch"); } delay(1000); }
図1:プログラム例
charA :比較したい1つ目の文字列を指定します。
charB :比較したい2つ目の文字列を指定します。
size :A,Bの文字列を先頭から何文字分比較するかという文字数を指定します。
A = B で0を返します。
※戻り値が0ならば比較した二つの文字列は一致しているということになります。