Etape 1: Le Code
J’ai créé une fonction simple qui peut être ajoutée à tout code existant. Le code n’exige pas de toutes les bibliothèques supplémentaires.
Recherche booléenne (String S1, S2 de chaîne, booléen CaseSensitive)
Syntaxe
Recherche (S1, S2, CaseSensitive)
Paramètres
S1 est la chaîne principale
S2 est le caractère/s vous souhaitez rechercher à l’intérieur de S1
CaseSensitive
- 0 - recherche n’est pas sensible à la casse
- 1 - recherche respecte la casse
Retourne
- True si contient de S1 S2
- False si S1 ne contient pas de S2
<p>String YourString1; // main string<br>String YourString2; // characters to be searched for</p><p>void setup() { // Set up serial monitor Serial.begin(9600);</p><p> // create strings YourString1 = "1234567890abcdefABCDEFGH"; // search - not case sensitive YourString2 = "efab"; if (Search(YourString1,YourString2,0)) { Serial.println("Found"); } else { Serial.println("Not found"); }</p><p> // search - case sensitive YourString2 = "efab"; if (Search(YourString1,YourString2,1)) { Serial.println("Found"); } else { Serial.println("Not found"); }</p><p> // search - case sensitive YourString2 = "efAB"; if (Search(YourString1,YourString2,1)) { Serial.println("Found"); } else { Serial.println("Not found"); }</p><p> // search - not case sensitive YourString2 = "efAB"; if (Search(YourString1,YourString2,0)) { Serial.println("Found"); } else { Serial.println("Not found"); }}</p><p>void loop() { // put your main code here, to run repeatedly:</p><p>}</p><p>// Search for String S2 inside String S1 // Returns "false" if not found // Returns "true" if found // CaseSensitive: 0 - ignore case // 1 - case must match boolean Search(String S1, String S2, boolean CaseSensitive) { String S3 = ""; // determine string lengths word Slen1 = S1.length(); //make string1 lower case word Slen2 = S2.length(); //make string2 lower case // Convert to lower case if (!CaseSensitive) S1.toLowerCase(); //make string1 lower case if (!CaseSensitive) S2.toLowerCase(); //make string1 lower case // Search for (byte i = 0; i < Slen1 - Slen2 + 1; i++) { S3 = ""; for (byte j = i; j < Slen2 + i ; j++) { S3 = S3 + S1.charAt(j); } if (S2 == S3) { // String found return true; } } // String not found return false; }</p>