- Messaggi: 30
- Ringraziamenti ricevuti 1
problema con array di caratteri
8 Anni 11 Mesi fa #1
da MoriLuca
problema con array di caratteri è stato creato da MoriLuca
Buona sera,
Sto avendo un piccolo problemino con l' uso di un array di caratteri.
All inizio del mio programma , ho definito
char acAlarmState [] = {'O','F','F','\0'} ;
Fin qua nessun problema, se monto il programma, gira tutto normalmente, ed io sul mio display,
vedo il mio orologio, con sopra la scritta indicante lo stato della sveglia.
Il problema è sorto quando nel codice ho provato ad inserire il cambio di stato.
Alla pressione del pulsante, vorrei che , se per esempio ,
if ( acAlarmState[1]=='F' ) acAlarmState[]= {'O','N','\0'};
Cosi facendo mi si presentano questi errori, che non riesco , anche dopo svariate ricerche,
a eliminare.
PressioneTasto.h:42: warning: (343) implicit return at end of non-void function
Main.c:95: error: (195) expression syntax
Main.c:95: error: (312) ";" expected
Main.c:100: error: (195) expression syntax
Main.c:100: error: (312) ";" expected
Main.c:119: error: (285) no identifier in declaration
Main.c:119: warning: (374) missing basic type; int assumed
Main.c:119: error: (314) ";" expected
Main.c:122: error: (285) no identifier in declaration
Main.c:122: warning: (374) missing basic type; int assumed
Main.c:122: error: (314) ";" expected
Sto avendo un piccolo problemino con l' uso di un array di caratteri.
All inizio del mio programma , ho definito
char acAlarmState [] = {'O','F','F','\0'} ;
Fin qua nessun problema, se monto il programma, gira tutto normalmente, ed io sul mio display,
vedo il mio orologio, con sopra la scritta indicante lo stato della sveglia.
Il problema è sorto quando nel codice ho provato ad inserire il cambio di stato.
Alla pressione del pulsante, vorrei che , se per esempio ,
if ( acAlarmState[1]=='F' ) acAlarmState[]= {'O','N','\0'};
Cosi facendo mi si presentano questi errori, che non riesco , anche dopo svariate ricerche,
a eliminare.
PressioneTasto.h:42: warning: (343) implicit return at end of non-void function
Main.c:95: error: (195) expression syntax
Main.c:95: error: (312) ";" expected
Main.c:100: error: (195) expression syntax
Main.c:100: error: (312) ";" expected
Main.c:119: error: (285) no identifier in declaration
Main.c:119: warning: (374) missing basic type; int assumed
Main.c:119: error: (314) ";" expected
Main.c:122: error: (285) no identifier in declaration
Main.c:122: warning: (374) missing basic type; int assumed
Main.c:122: error: (314) ";" expected
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MoriLuca
- Autore della discussione
- Junior Member
Riduci
Di più
8 Anni 11 Mesi fa #2
da alfa75
Risposta da alfa75 al topic problema con array di caratteri
Ciao
secondo me il problema è quel punto e virgola dopo la parentesi
secondo me il problema è quel punto e virgola dopo la parentesi
Ringraziano per il messaggio: MoriLuca
Si prega Accedi o Crea un account a partecipare alla conversazione.
- alfa75
- Platinum Member
Riduci
Di più
- Messaggi: 527
- Ringraziamenti ricevuti 86
8 Anni 10 Mesi fa #3
da firstcolle
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Risposta da firstcolle al topic problema con array di caratteri
Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- firstcolle
- Platinum Member
Riduci
Di più
- Messaggi: 362
- Ringraziamenti ricevuti 39
8 Anni 10 Mesi fa #4
da MoriLuca
Risposta da MoriLuca al topic problema con array di caratteri
Grazie per il vostro tempo ragazzi!
Comunque lascio scritto come ho risolto il problema, non si sa mai ..
Da quanto ho capito, programmando in C, non è possibile andare a cambiare il contenuto
di un array di caratteri , come in una stringa per il C++.
Per fare questo bisogna usare delle funzioni richiamate dalla libreria "string.h".
La funzione strcpy(char,string), permette appunto di inserire come primo argomento ,
l 'array di char da modificare , e come secondo argomento , la stringa da inserire.
Es
#include "string.h"
char cNome [] = {'O','N','\0'};
int main (void){
strcpy(cNome,"ciao");
}
Se ci dovesse essere qualche errore, o una via migliore per farlo , fatemi sapere.
Buona serata
Comunque lascio scritto come ho risolto il problema, non si sa mai ..
Da quanto ho capito, programmando in C, non è possibile andare a cambiare il contenuto
di un array di caratteri , come in una stringa per il C++.
Per fare questo bisogna usare delle funzioni richiamate dalla libreria "string.h".
La funzione strcpy(char,string), permette appunto di inserire come primo argomento ,
l 'array di char da modificare , e come secondo argomento , la stringa da inserire.
Es
#include "string.h"
char cNome [] = {'O','N','\0'};
int main (void){
strcpy(cNome,"ciao");
}
Se ci dovesse essere qualche errore, o una via migliore per farlo , fatemi sapere.
Buona serata
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MoriLuca
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 1
8 Anni 10 Mesi fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic problema con array di caratteri
Per piccoli cambiamenti sulla stringa, puoi anche accedere alle singole celle dell'arrary piuttosto che usare le funzioni di libreria.
una volta definito char cNome [4] = {'O','N','\0'};
puoi scrivere nel codice
cNome[0] = 'O';
cNome[1] = 'F';
cNome[2] = 'F';
cNome[3] = '\0';
In questo caso potresti anche definire due semplici costanti con relative stringhe.
Saluti,
Mauro
una volta definito char cNome [4] = {'O','N','\0'};
puoi scrivere nel codice
cNome[0] = 'O';
cNome[1] = 'F';
cNome[2] = 'F';
cNome[3] = '\0';
In questo caso potresti anche definire due semplici costanti con relative stringhe.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Login
© LaurTec 2006 - 2024