long형의 변수에 문자열 저장후 출력하는 프로그램...

A-Shell_Moon의 이미지

long형 변수에 문자열을 저장후 출력하는 프로그램을 만들어봤는데..
long형이 4바이트이기 때문에 한개의 변수에 4개의 문자를 넣을수 있지않을까 하는생각에
시작을 해봤는데 어렵네요..
우선 문자열을 입력받고 입력받은 문자열을 4바이트의 16진수 형태로 변환하고 그걸다시
10진수로 변환하여 long 변수에 대입후 출력하면 되긴하는데
만약 문자열의 크기가 4이상일경우엔 long형의 변수를 배열로 선언하고 그걸 다시 하나의 배열에 4개의 문자열을 삽입하는 형태로 하면 될꺼 같긴한데 감이 안오네요 ㅠㅠ

서지훈의 이미지

memcpy() 를 이용해 순수한 data그대로 복사 하시면 쉽게 해결이 될듯 합니다.

char *str = "1234567890";
long l_arr[10];
 
memcpy((char *)l_arr, str, strlen(str));

대략적인 구현은 저렇게.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

winner의 이미지

단지 호기심인가요?

익명사용자의 이미지

union {
long l;
char c[4];
} un;
정도로 쓰는 방법도 있습니다... 변수 하나 더 쓰는 게 귀찮아서 좀 그렇지만...=_=