Salve,
vorrei realizzare un programma che quando inserisco una frase via seriale controlli se c'è una data parola (ad esempio voglio spere se nella frase "ciao mi chiamo Luca" è presente la parola "ciao"). Quali funzioni devo usare? La frase devo salvarla come stringa o ogni carattere separatamente?
Grazie
Devi avere due variabili dichiarate come string, ed utilizzare StringIndexOf.
Se hai un valore uguale o maggiore di 0, allora la tua stringa esiste, se è -1 non è presente.
Ricorda che è case sensitive, cioè Luca è diverso da luca.
Grazie Brado
Figurati!
Purtroppo però controlla solo la prima parola. Quindi se chiedo nella frase "ciao mi chiamo Luca" è presente la parola "ciao" mi dice sì, se chiedo se c'è la parola "chiamo" dice di no. Non si può fare oppure sono io che non sono capace di usare questa funzione?
Esiste un altro modo?
Grazie
Lo sketch?
ne ho provati due:
String stringa;
void setup () {
Serial.begin(9600);
}void loop () {
if(Serial.available () > 0){
stringa = Serial.readString();
Serial.println(stringa);
if(!stringa.indexOf("ciao")||(!stringa.indexOf("Ciao"))){
Serial.println("Ciao, sono Arduino.");
}else{
Serial.println("xxx");
}
}
}
String stringa;
void setup () {
Serial.begin(9600);
}void loop () {
if(Serial.available () > 0){
stringa = Serial.readString();
Serial.println(stringa);
if(!stringa.indexOf("?")){
Serial.println("domanda");
}else{
Serial.println("affermazione");
}
}
}
Nel primo prova a sostituire
if(!stringa.indexOf("ciao")||(!stringa.indexOf("Ciao")))
con
if((stringa.indexOf("ciao")>=0)||(stringa.indexOf("Ciao")>=0))
Re:GRAZIE brado.
grazie al tuo consiglio ora sono riuscito a fare funzionare tutti e due gli sketch.
:)
Bene!
L'importante che abbia capito il perché prima non funzionasse, ed ora si.