Czy można przekonwertować int na "string" w C, używając tylko rzutowania? Bez żadnych funkcji, takich jak atoi()
lub sprintf()
?Prześlij int do tablicy znaków w C
Co chcę byłoby tak:
int main(int argc, char *argv[]) {
int i = 500;
char c[4];
c = (char)i;
i = 0;
i = (int)c;
}
Powodem jest to, że muszę generować dwa losowe ints (0 do 500) i wysyłać zarówno jako jeden ciąg w kolejce komunikatów do innego procesu. Drugi proces odbiera komunikat i wykonuje LCM.
Wiem, jak to zrobić z atoi()
i itoa()
. Ale moi nauczyciele chcą tylko używać obsady.
Dlaczego poniższe kompilacje nie są możliwe?
typedef struct
{
int x;
int y;
} int_t;
typedef struct
{
char x[sizeof(int)];
char y[sizeof(int)];
} char_t;
int main(int argc, char *argv[])
{
int_t rand_int;
char_t rand_char;
rand_int.x = (rand() % 501);
rand_int.y = (rand() % 501);
rand_char = (char_t)rand_int;
}
kluczowy zwrot jest „moi nauczyciele want' co oznacza, że wszystko jest po abyś zrozumiał, a nie żebyśmy ci pokazali. ~ smile ~ –
Nie możesz wyobrazić sobie wysiłku, czasu i badań, które zmarnowałem próbując to zrobić. Wszystko działa dobrze, po prostu obsada nie działa. – Bodosko
Chciałbym kontratakować, że straciłeś jedną sekundę ... zrobiłeś dokładnie to, co zamierzali nauczyciele ... spędziłeś dużo czasu, zastanawiając się, jak tego nie robić. I to jest niezwykle cenne jako programista. –