정수를 char *s
에 저장된 숫자 문자열로 변환하려고합니다.char *를 사용하여 정수 저장
char* ItoA(int n, char *s){
int mod = n;
for(int x = 1; x <= sizeof(n) + 2; x++){
int digit = mod % 10;
s[x-1] = digit;
mod = mod/10;
}
return s;
}
void main(){
int n = 12345;
char s3;
// should print 12345
cout << "\n" << ItoA(n, &s3);
cin.get();
}
메인의 출력으로 가비지 배열을 계속 가져 가기 때문에 내 표기법에 문제가 있음을 알고 있습니다. 왜 "12345"대신에 쓰레기가 나옵니까?
['itoa()'(HTTP있다. cplusplus.com/reference/cstdlib/itoa) 표준 C++ 호환되지 않습니다. –
이상한. 나는 모든 C 라이브러리가 C++에 포함되었다고 가정했다. 표준 C++이 아닌 이유는 무엇입니까? C99이 아마도 C++에 복사되지 않았을까요? *** 다시 업데이트 : *** itoa는 표준이 아닌 것 같습니다. C : http://stackoverflow.com/questions/10162733/atoi-is-a-standard-function-but-itoa-is-not -why –
'snprintf'를 사용할 수 있습니다. –