Aggiunta di int a char * e poi di compensazione
-
12-09-2019 - |
Domanda
Sto lavorando su un progetto che utilizza un Arduino e come tale, sto leggendo da una porta seriale (che invia int
s). Ho bisogno di scrivere questo, allora la comunicazione seriale ad un LCD, che prende un char*
.
Ho bisogno di leggere diversi personaggi dalla porta seriale (due interi) in una stringa. Dopo che entrambi sono stati ricevuti, ho quindi bisogno di cancellare la stringa di prepararsi per i prossimi due caratteri.
TLDR : Come faccio ad aggiungere un int
ad un char*
, e quindi cancellare la stringa dopo che ha due caratteri?
Soluzione
Un char è un singolo carattere, mentre un char * può essere un puntatore a un carattere o un puntatore al primo carattere di una stringa C, che è un array di caratteri terminati da un carattere nullo.
Non è possibile utilizzare un char per rappresentare un intero più lungo di 1 cifra, quindi ho intenzione di assumere hai fatto in realtà dire char *.
Se hai
char buffer[10];
è possibile impostare buffer
ad una stringa che rappresenta un n
int con sprintf
sprintf(buffer, "%d", n);
E quando hai finito con esso, è possibile cancellare la stringa con
sprintf(buffer, "");
La speranza che è ciò che stavi chiedendo, e buona fortuna!
Altri suggerimenti
Non è possibile leggere in un char *, si tratta di un puntatore. Si può leggere nella memoria a cui punta il puntatore, a condizione che punta a qualcosa di valido. Per quanto riguarda la compensazione, non è ovvio ciò che vuoi dire.
La linea di fondo è che è necessario inserire un codice vero e proprio che tenta di fare quello che vuoi, e chiedere su questo.