Dove sbaglio?
codice:int elem = 0, i = 0; char *prova = "-1,-1,2,3"; for (; i < strlen(prova); i++) { printf("%c ", *(prova+i)); if (strcmp(*(prova+i), ",") != 0) elem += 1; }
Dove sbaglio?
codice:int elem = 0, i = 0; char *prova = "-1,-1,2,3"; for (; i < strlen(prova); i++) { printf("%c ", *(prova+i)); if (strcmp(*(prova+i), ",") != 0) elem += 1; }
non va comunque
warning: comparison between pointer and integer
if (*(prova+i) == ",") elem += 1;
Neanche copiare... oregon ha scritto la virgola tra apici singoli (una costante char), tu l'hai scritta tra virgolette (è una costante stringa, ovvero un puntatore a carattere)... e te l'aveva pure scritto...
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Siccome sto studiando da poco C e provengo da linguaggi dove è sempre stato presente il Garbage Collector puoi capire come per me sia abbastanza sconcertante scoprire una differenza fra "," e ','.
Quindi porta pazienza per favore.
Quindi:
"," restituisce l'id
Mi fate un esempio per spiegarmi meglio "," e ','?codice:printf("%p", ","); matias@matias-desktop:~/Desktop$ gcc try.c -o try matias@matias-desktop:~/Desktop$ ./try 0x40075d
Grazie
// Edit
ok dovrei aver capito...
Edit:codice:matias@matias-desktop:~/Desktop$ gcc try.c -o try matias@matias-desktop:~/Desktop$ ./try , /* try.c */ printf("%c", *(","));
E per logica: printf("\n%c\n", *(",A" + 1));
restituisce "A"
Ultima modifica di zacca94; 18-06-2017 a 17:06
Pazienza massima con tutti ma bisogna almeno leggere le risposte e chiedersi se qualcosa non va solo perché non si sono seguiti i consigli. Provare esattamente quello che viene proposto abbandonando tutte le conoscenze relative ad altri linguaggi, che possono confondere. E consultare i libri del linguaggio se si hanno dubbi senza andare 'per logica'.
No MP tecnici (non rispondo nemmeno!), usa il forum.