Funkcja Arduino strcmp

Funkcja Arduino strcmp

Arduino jest programowane przy użyciu języka C lub C ++; większość składni obu tych języków jest taka sama. Funkcje używane w języku C można łatwo zaimplementować w programowaniu Arduino Jednym z nich jest Strcmp, który porównuje dwa różne znaki Strings. Dowiedzmy się, jak to zrobić w Arduino Ide.

funkcja strcmp ()

Funkcja strcmp () w programowaniu Arduino porównuje dwa różne ciągi i zwraca trzy wartości w zależności od znaków wewnątrz ciągu. String Porównanie funkcji sprawdza wartości ASCII znaków obecnych w obu ciąży i zwraca liczbę dodatnią, ujemną lub zerową w wyjściu.

Strcmp () porównuje zarówno znak 1, jak i sznur 2 według znaku. Będzie dalej porównywać, dopóki nie znajdzie odmiennego charakteru między obiema strunami. Jeśli pierwsza postać obu strun jest równa, pójdzie w kierunku drugiego i będzie dalej porównywać, aż znajdzie charakter odmienny. W przypadku, gdy nie zostanie znalezione pojedynczy odmienny znak, zero zostanie zwrócone.

Składnia

Składnia funkcji strcmp () podano poniżej:

int strcmp (const char * string1, const char * string2);

W składni podanej powyżej String1 i String2 to dwa ciągniki, których znaki należy porównać jeden po jednym.

Wartości parametrów

Funkcja strcmp () przyjmuje dwa parametry:

  • String1: wskaźnik do pierwszego ciągłego ciągu, który ma zostać porównany.
  • String2: wskaźnik do drugiego ciągu, który należy porównać.

Wartości zwracane

Postacie na klawiaturze mają unikalne wartości ASCII, więc strcmp () Funkcje zwracają trzy różne wartości w zależności od znaków ciągu:

  • Wartość dodatnia: Jeśli znaki String 1 mają większą wartość ASCII niż pierwszy różny charakter String 2.
  • Ujemna wartość: Jeśli znaki String 1 mają mniejszą wartość ASCII niż pierwszy różny znak String 2.
  • Zero: Jeśli ciąg 1 i ciąg 2 są równe.

Ta funkcja będzie porównywać każdy znak w ciągu z każdym znakiem innego ciągu i będzie kontynuowana, aż pojawi się jakikolwiek odmienny znak, który jest obecny tylko w jednym ciągu opartym na wartościach ASCII.

Przykładowy kod

Funkcja strcmp () działa poprzez porównanie wartości ASCII znaków, aby uzyskać odniesienie Patrz tabela poniżej I I u. Oba mają różne wartości ASCII z "I" Posiadanie 105 i u wartość równa 117. Co oznacza wartość ASCII I jest mniejszy od u.

Podobnie litery kapitałowe I i U będzie miała wartość ASCII, mając większą ASCII niż ja.

Postać ASCII Dec KLĄTWA OCT
I 105 69 151
u 117 75 165

Korzystając z przykładu, dowiedzmy się, jak działa strcmp ().

void setup ()
int Porównanie_Result;
Seryjny.rozpocząć (9600); /*Zdefiniuj szybkość BAUD*/
char* string1 = "Linuxhint"; /*String1 zaczyna się od małego I (kod ASCII 105 w dziesiętnym)*/
char* string2 = "Linuxhunt"; /*String2 zaczyna się od małego u (kod ASCII 117 w dziesiętnym)*/
Porównanie_result = strcmp (string1, string2); /*Porównaj oba ciągi*/
Seryjny.druk („wyjście po porównaniu dwóch stringów =”);
/*Zwraca liczbę ujemną Wartość ASCII o znaku niezrównania się ciągu 2 jest większa niż ciąg 1*/
Seryjny.println (porównanie_result);

void Loop ()

W tym kodzie najpierw definiujemy nową zmienną wyjście Aby przechowywać wartość zwrotną funkcji strcmp (). Następnie zainicjowaliśmy komunikację szeregową, definiując wskaźnik transmisji. Następne dwa struny są zdefiniowane.

Funkcja strcmp () porówna zarówno ciągi i przechowuje dane wyjściowe w zmiennych utworzonych na początku. Aby wydrukować wyjście na szeregowym monitor seryjnego.Używana jest funkcja println.

Wyjście

Możemy kategoryzować dane wyjściowe na trzy różne sposoby:

1. Kiedy wyjście jest dodatnie

Tutaj wyjście jest dodatnie, ponieważ wartość String 1 ASCII jest większa niż String 2.

2. Gdy wyjście jest ujemne

Tutaj wyjście jest ujemne, ponieważ wartość String 1 ASCII jest mniejsza niż String 2.

3. Gdy wyjście wynosi zero

Tutaj wyjście jest zerowe, ponieważ ciąg 1 jest równy Stringowi 2.

Notatka: Dostępnych jest również wiele innych funkcji, które porównują dwa ciągi, takie jak:

  • String równa () funkcja.
  • Funkcja comporteto ().
  • Operatorzy porównywania ciągów ().

Wniosek

Ten zapis pomoże ci ulepszyć i ulepszyć umiejętności programowania Arduino. Jeśli ktoś ma podstawowe zrozumienie języka C/C ++, łatwo będzie zaprogramować planszę Arduino. Funkcja strcmp () porównuje dwa różne ciągi i zwraca liczby dodatnie, ujemne lub zerowe.