# Convertire stringa in intero

**URL:** <https://forum.arduino.cc/t/convertire-stringa-in-intero/522775>\
**Category:** Software\
**Created:** [April 26, 2018, 10:20pm UTC](https://forum.arduino.cc/t/convertire-stringa-in-intero/522775 "2018-04-26T22:20:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![MrBrownIT](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MrBrownIT](https://forum.arduino.cc/u/MrBrownIT)\
**Post date:** [April 26, 2018, 10:20pm UTC](https://forum.arduino.cc/t/convertire-stringa-in-intero/522775/1 "2018-04-26T22:20:17Z")

</div>

Ciao ragazzi, vi spiego il problema! Voglio recuperare l'orario da un modulo gsm è inserirlo come valore di partenza di un rtc software.

il problema è che non riesco a compilare il codice, ve lo mostro...

```cpp
int ora = 00;

void setup() {
  mySerial.begin(19200); //velocitÃ  seriale del modulo GSM
  Serial.begin(9600); //velocitÃ  seriale del programma
recuperaora();

  //orologio software
  rtc.stopRTC(); //stop the RTC
  rtc.setTime([b]ora[/b],0,0); //set the time here  
  rtc.setDate(25,25,12); //set the date here
  rtc.startRTC(); //start the RTC
}
void loop() {  }
void recuperaora() {
  mySerial.println("AT+CCLK?");
  for (int timer3 = 0; timer3 <= 5; timer3++) {              //per mostrare il ciclo di risposte del modulo attivare il ciclo for
      String inData3 = mySerial.readStringUntil('\n');          //leggo le risposte
      Serial.println("Risposta da modulo GSM: " + inData3);    //mostra la chat tra arduino e il modulo gsm

      //scompongo la stringa per farla diventare un valore intero
      String data = (inData3.substring(8, 16));
      String ora = (inData3.substring(17, 25));
      data.trim();
      ora.trim();
      Serial.println(data);Serial.println(ora);
int ora=atoi(ora.c_str());
    }
}

```

---

<div class="post-metadata">

**Author:** ![Silente](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/silente/32/274049_2.png) [@Silente](https://forum.arduino.cc/u/Silente)\
**Post date:** [April 27, 2018, 5:05am UTC](https://forum.arduino.cc/t/convertire-stringa-in-intero/522775/2 "2018-04-27T05:05:51Z")

</div>

Che errori ti da? Mettili tutti  
E poi già il fatto che ci siano in giro degli [b] e [/b] non depone a tuo favore. Toglili.  
Presentati poi sul forum apposito (se non lo hai già fatto) e prenditi un bel libro di C.

---

<div class="post-metadata">

**Author:** ![Standardoil](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/standardoil/32/1286411_2.png) [@Standardoil](https://forum.arduino.cc/u/Standardoil)\
**Post date:** [April 27, 2018, 5:06am UTC](https://forum.arduino.cc/t/convertire-stringa-in-intero/522775/3 "2018-04-27T05:06:53Z")

</div>

Se non ci dici almeno l'errore sarà difficile che noi si possa aiutare  
ma da una scorsa al codice a naso direi che almeno un problema lo hai qui

```cpp
Serial.println("Risposta da modulo GSM: " + inData3);    //mostra la chat tra arduino e il modulo gsm

```

e poi non mi è chiaro perchè ripetere 5 volte la stesssa sequenza, identica, con le stesse variabili  
posta l'errore, che è meglio

e poi, segui un paio di regole semplici:  
una riga uno statement, per quanto sia vero che puoi scrivere ancora roba dopo il punto e virgola non è per nulla comodo da capire  
metti le giuste indentazioni, e le parentesi graffe come si deve  
(non importa quale convenzione segui, ma UNA la devi seguire)  
la formattazione automatica serve a questo  
Se scrivi ordinato seguendo poche semplici regole e tieni ben formattato ed allineato il testo è tutto più semplice  
NON è un consiglio, è una esplicita richiesta, in BASIC:  
SE tu lo fai  
ALLORA io sono disposto ad aiutarti  
ALTRIMENTI no  
FINEDELSE

---

<div class="post-metadata">

**Author:** ![nid69ita](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/nid69ita/32/901258_2.png) [@nid69ita](https://forum.arduino.cc/u/nid69ita)\
**Post date:** [April 27, 2018, 7:11am UTC](https://forum.arduino.cc/t/convertire-stringa-in-intero/522775/4 "2018-04-27T07:11:16Z")

</div>

CCLK will return the current local time in “yy/mm/dd,hh:mm:ss+/-zz” format  
Dove fai questo, aggiungi la stampa di ora.c\_str() su Serial, che cosa stampa ?  
Serial.println(data); Serial.println(ora);  
Serial.println(ora.c\_str()); // stampa di ora.c\_str()  
int ora=atoi(ora.c\_str());

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 7, 2021, 2:13am UTC](https://forum.arduino.cc/t/convertire-stringa-in-intero/522775/5 "2021-05-07T02:13:21Z")

</div>


