초보 질문 하나 드립니다.
스트링을 integer로 바꿔주는 함수 atoi() 입니다. 그런데, integer를 string으로 바꿔주는 함수를 itoa()로 알고 사용하려고 하니, 안 먹는 것 같습니다. man page에도 나오지 않네요.. 커널 디폴트 라이브러이에는 포함되어 있지 않은거 같은데, 특별한 라이브러리가 필요한지요?
환경은 gcc 3.2.2이고 리눅스 커널 2.4.18입니다.
감사합니다.
sprintf( str, "%d", 1234 )
What do you want to eat?
답변의 의도를 잘 모르겠습니다. 예를 하나 들도록 하겠습니다. #include <stdio.h> #include <stdlib.h> main() { int index = 10; char cb[48]; cb = itoa(index); printf("%s", itoa(index)); } 요렇게 하면 10이 찍히도록 하고 싶은 것입니다.
예를 하나 들도록 하겠습니다.
#include <stdio.h> #include <stdlib.h> main() { int index = 10; char cb[48]; cb = itoa(index); printf("%s", itoa(index)); }
요렇게 하면 10이 찍히도록 하고 싶은 것입니다.
#include <stdio.h> int main() { int i = 10; printf("%d", i); return 0; }
man페이지를 참고해보시는것도 도움이 될겁니다.
얼마전의 저와 똑같으신 분이군요. aoti()와는 달리 itoa()는 별도의 library를 사용하지 않는 한, linux에서는 존재하지 않 는 함수입니다. (window에서도 ms나 borland에서 만들어서 지원하는 것으로 압니다만)
보통 비슷한 용도로 sprintf()를 사용하는데 whitekid님께서 올 려주신 것처럼하면 str에 itoa()한 결과와 같은 '문자열'이 되어서 저장됩니다.
그 다음에 printf("%s",str); 또는 puts(str);
What a Cool Days!!!
itoa()라는 함수가 있었나요? 없었던 것 같았는데.
#include <stdio.h> #include <stdlib.h> main() { int index = 10; char cb[48]; /*cb = itoa(index); printf("%s", itoa(index)); */ sprintf(cb, "%d", index); printf("%s", cb); }
대강 이런 것을 원하시는 것이 아닐지요?
당신은 사랑받기 위해 태어난 사람.
unix, linux 모두 그런 함수는 지원하지 않습니다.
윗분들의 말씀 처럼 sprintf를 사용해서 변환하는 방법을 가장 많이 사용하지요. 만약, 굳이 함수형태로 만든것을 원하시면 메일 보내주세요. 저도 누군가에게 얻은 함수가 있어서리....
함 해보자.. 열심히..
아.. 감사합니다. sprintf가 화면 출력이 아니군요..
^^;;
답변 주신 모든 분들께 감사드립니다.
도움이 됐습니다. 리눅스엔 아직 없군요. 하긴 sprintf로 해결할 수 있다면 새로 만들 필요도 없죠. ^_^
sprintf로 해결이 안되고, 반드시 필요한 경우가 있긴 하더군요- 그래서 직접 구현해서 사용했던 기억이 나네요-
간단히..
string szString = "2345"; uint retInt = uint strSize = strlen(string); for(int i; i < stringleng(string); i++, strSize-- ) { retInt += strint[i]-'0') * pow(10,strSize); }
생각나는 대로 짜서 검증은 우주로..
#include #include
int main() { const char *str = "12X34TTTT"; char *ptr; long value;
value = strtol(str, &ptr, 10);
printf("str: %p\n", str); printf("ptr: %p\n", ptr); printf("value: %lu\n", value);
return 0; }
없음
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
[code:1]sprintf( str, "%d"
sprintf( str, "%d", 1234 )
What do you want to eat?
[quote="skjean"]답변의 의도를 잘 모르겠습니다. 예
man페이지를 참고해보시는것도 도움이 될겁니다.
얼마전의 저와 똑같으신 분이군요. aoti()와는 달리 itoa()는
얼마전의 저와 똑같으신 분이군요. aoti()와는 달리 itoa()는
별도의 library를 사용하지 않는 한, linux에서는 존재하지 않
는 함수입니다.
(window에서도 ms나 borland에서 만들어서 지원하는 것으로
압니다만)
보통 비슷한 용도로 sprintf()를 사용하는데 whitekid님께서 올
려주신 것처럼하면 str에 itoa()한 결과와 같은 '문자열'이 되어서
저장됩니다.
What a Cool Days!!!
itoa()라는 함수가 있었나요? 없었던 것 같았는데.[code:
itoa()라는 함수가 있었나요? 없었던 것 같았는데.
대강 이런 것을 원하시는 것이 아닐지요?
당신은 사랑받기 위해 태어난 사람.
그런 함수는 기본적으로 제공하지 않음.
unix, linux 모두 그런 함수는 지원하지 않습니다.
윗분들의 말씀 처럼 sprintf를 사용해서 변환하는 방법을 가장 많이 사용하지요.
만약, 굳이 함수형태로 만든것을 원하시면 메일 보내주세요.
저도 누군가에게 얻은 함수가 있어서리....
함 해보자.. 열심히..
아.. 감사합니다. sprintf가 화면 출력이 아니군요..^
아.. 감사합니다.
sprintf가 화면 출력이 아니군요..
^^;;
답변 주신 모든 분들께 감사드립니다.
감사합니다.
도움이 됐습니다.
리눅스엔 아직 없군요.
하긴 sprintf로 해결할 수 있다면 새로 만들 필요도 없죠. ^_^
-_-
sprintf로 해결이 안되고, 반드시 필요한 경우가 있긴 하더군요-
그래서 직접 구현해서 사용했던 기억이 나네요-
sprintf로 해결이 안될땐 for 문으로 구현가능 할것 같네요..
간단히..
string szString = "2345";
uint retInt =
uint strSize = strlen(string);
for(int i; i < stringleng(string); i++, strSize-- )
{
retInt += strint[i]-'0') * pow(10,strSize);
}
생각나는 대로 짜서 검증은 우주로..
strtoul로 안될까요?
#include
#include
int main()
{
const char *str = "12X34TTTT";
char *ptr;
long value;
value = strtol(str, &ptr, 10);
printf("str: %p\n", str);
printf("ptr: %p\n", ptr);
printf("value: %lu\n", value);
return 0;
}
없음
댓글 달기