récupérer un string

a marqué ce sujet comme résolu.

bonjour à tous

Je voudrais diviser par 10 chaque valeur retourné de ce string sous arduino mais je n’arrive pas à les récupérer dans un tableau

pourriez-vous m’aider

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
  String  stringOne  = "0 0.319131750, 1 0.319536470, 0 0.320013340, 1 0.320422550, 0 0.320806540, 1 0.321220170, 0 0.321632110,   ";

  String stringTwo = stringOne;

  stringTwo.replace("0 0.", "");

  stringTwo.replace("1 0.", "");

  Serial.println("string original: " + stringOne);

  Serial.println("string modifie: " + stringTwo);


  }

`
+0 -0

Coucou \o,

Tu dois avoir un problème lorsque tu utilises les balises de code.

Voila comment on les utilises :

1
2
3
```c

```

Sachant que le caractère ` s’obtient en faisant chez moi Alt Gr + 7.

Donc 3 fois Alt Gr + 7, ensuite, on mets le nom du langage (ici C ou C++, le langage Arduino ayant une syntaxe mélangée des deux). Puis on referme avec 3 fois Alt Gr + 7.


Sinon, c’est un problème de programmation et pas de matériel. Du coup, je l’ai déplacé dans la bonne section.


Pour ton problème, je te conseil de passer par un chaine de caractère C-like. C’est à dire : stringTwo.c_str(). Ensuite, tu peux utiliser la fonction C strtok combinée avec la fonction atoi.

Ça donne quelquechose du genre :

1
2
3
4
5
char *token = std::strtok(stringTwo.c_str(), " ");
while (token != NULL) {
   Serial.println(atoi(token)/10.0);
   token = strtok(NULL, " ");
}

Edit: Largement grillé par AmarOk ^^"

+0 -0

bonjour Je voudrais divisé par 10 cet trois valeur "12345, 6789, 101112"

Mais je n’arrive qu’a en divisé qu’une

si vous avez une idée

merci d’avance

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
String s = "12345, 6789, 101112"; 

  int n;

  double nb;

  String subs, newStr="";



  n = s.indexOf(",");

  subs = s.substring(0, n);

  subs.trim(); 



  nb = subs.toFloat();

  nb = nb / 10;



  newStr.concat(String(nb));

  newStr.concat(","); 



/code]
+0 -0

Question bête mais si le code te convient comme ça. Pourquoi ne fait tu pas une boucle pour répéter ce que tu fais sur les autres éléments ?

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte