String const char* dans l'Arduino?
J'ai une variable tweet
qui est une chaîne et il a un personnage au tout début que j'ai envie de couper.
Donc ce que je veux faire est d'utiliser strstr()
pour l'enlever. Voici mon code:
tweet = strstr(tweet, "]");
Cependant, j'ai cette erreur:
cannot convert 'String' to 'const char*' for argument '1' to
'char' strstr(const char*, const char*)
Donc, ma pensée serait de convertir tweet
dans un char. Comment pourrais-je aller sur le faire?
- Utiliser le
c_str()
méthode pour obtenir unconst char*
- Jetez un oeil à la définition de
String
et voir si il y a une fonction appropriée (comme lec_str()
fonction de membre destd::string
) - j'espère que il va y avoir un moyen de faire ce que vous voulez sans déconner avec le style C à cordes. Sans savoir ce queString
est, cette question ne peut être répondu. - pourquoi avez-vous retiré de l'arduino tag? Pour supprimer les informations importantes à partir de la question!
- L'écriture multi-langue source des fichiers est de travailler dur. Je vous suggère de vous en tenir à un de C ou de C++.
Vous devez vous connecter pour publier un commentaire.
Que diriez-vous d'utiliser
substring
à la place. Ce sera moins compliqué que de convertir entre les différents types de chaîne.http://arduino.cc/en/Reference/StringSubstring
string
a unc_str()
fonction membre qui retourneconst char *
.vous pouvez le faire plus facile. Puisque vous êtes à l'aide de C++:
substr() renvoie une partie de la chaîne de retour à vous, en tant que chaîne de caractères.
Le paramètre est le point de départ de cette sous-chaîne.
Depuis l'index de chaîne est basée sur 0, 1 devrait couper le premier caractère.
Si vous souhaitez utiliser strstr vous pouvez juste lancer tweet dans un c-string:
Cependant, c'est assez inefficace, puisqu'il revient un c-string qui doit être transformé en un std::string contre, pour s'insérer dans un tweet.
À l'aide de l'instruction suivante
tweet.c_str()
sera de retour le tampon de chaîne, ce qui vous permettra d'effectuer la modification que vous souhaitez.Regardez:
Paramètres
Voir cette page
Je réalise que c'est une vieille question, mais si vous essayez, par exemple, comparer un spécifique char, et pas seulement une lettre dans une chaîne de caractères, puis ce que vous voulez est chaîne.charAt(n). Par exemple, si vous faites de la programmation en série et vous avez besoin de vérifier pour STX (\02) que vous pouvez utiliser le code suivant.