How to convert an integer to a string portably?
Asked Answered
P

2

6

I was looking for a way to convert an integer to a string in a portable manner (portable among at least Windows & Linux and x86 and x86_64) and I though itoa(X) to be standard just like atoi(1).

But I read the following in the Wikipedia entry:

The itoa function is a widespread non-standard extension to the standard C programming language. It cannot be portably used, as it is not defined in any of the C language standards; however, compilers often provide it through the header while in non-conforming mode, because it is a logical counterpart to the standard library function atoi.

So I'd like to know if there is any way to do it in a portable manner or not. In case I have to write my own function, which things do I have to be careful with?

Prowl answered 9/2, 2010 at 0:12 Comment(2)
while itoa isn't officially portable, I doubt you will ever run into a problem with it. and if you do, it's a very easy function to write.Milagrosmilam
You could always implement your own :PCohort
C
1

Most often you just use printf("%d");

http://en.wikipedia.org/wiki/Printf

You can use sprintf if you need it in a buffer, but how often do you convert to a string and not write it to a file or output device?

Canonicals answered 9/2, 2010 at 0:16 Comment(0)
A
0

If you aren't doing this terribly often, how about a runtime library routine that writes a few numbers to memory, analyzes the results and stores an encoding type? From then on you just switch on your "encoding type" to select which conversion routine to use.

Ashford answered 9/2, 2010 at 0:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.