Portál AbcLinuxu, 13. května 2025 20:04
int cislo;
sprintf(string, "%d", cislo);
printf("%c", string[2]);
String[2] by mala bejt 3 cifra u cisla.
Dekuju
string[2]
by měla být třetí cifra zleva, obvykle se cifry počítají zprava, od nejmenšího řádu. Jinak pokud string
je ukazatel na dostatečně dlouhé pole charů a jazyk je C nebo C++, mělo by to podle mne fungovat. Nepíšete, proč nemůžete – já bych řekl, že můžete.
#include < stdio.h >
#include < stdlib.h >
int main(){
int cislo=125, i;
char *string[10];
sprintf(string, "%d", cislo);
for(i=0; i < strlen(string); i++)
printf("i=%d, cifra[i] je '%c'\n", i, string[i]);
return 0;
}
i=0, cifra[i] je '1'
i=1, cifra[i] je ''
i=2, cifra[i] je '�'
Nechapu to... :(
char *string[10];je podle mne buď ukazatel na pole deseti znaků, nebo pole deseti ukazatelů na znak, ale rozhodně ne pole znaků. Ta hvězdička tam přebývá.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.