Easiest way to convert int to string in C++
C++11 introduces std::stoi
(and variants for each numeric type) and std::to_string
, the counterparts of the C atoi
and itoa
but expressed in term of std::string
.
#include <string>
std::string s = std::to_string(42);
is therefore the shortest way I can think of. You can even omit naming the type, using the auto
keyword:
auto s = std::to_string(42);
Note: see [string.conversions] (21.5 in n3242)
How to convert an int to string in C?
EDIT: As pointed out in the comment, itoa()
is not a standard, so better use sprintf() approach suggested in the rivaling answer!
You can use itoa()
function to convert your integer value to a string.
Here is an example:
int num = 321;
char snum[5];
// convert 123 to string [buf]
itoa(num, snum, 10);
// print our string
printf("%s\n", snum);
If you want to output your structure into a file there is no need to convert any value beforehand. You can just use the printf format specification to indicate how to output your values and use any of the operators from printf family to output your data.
How to convert integer to string in C? [duplicate]
Use sprintf()
:
int someInt = 368;
char str[12];
sprintf(str, "%d", someInt);
All numbers that are representable by int
will fit in a 12-char-array without overflow, unless your compiler is somehow using more than 32-bits for int
. When using numbers with greater bitsize, e.g. long
with most 64-bit compilers, you need to increase the array size—at least 21 characters for 64-bit types.
Converting int to string in C
Use snprintf
, it is more portable than itoa
.
itoa is not part of standard C, nor is it part of standard C++; but, a lot of compilers and associated libraries support it.
Example of sprintf
char* buffer = ... allocate a buffer ...
int value = 4564;
sprintf(buffer, "%d", value);
Example of snprintf
char buffer[10];
int value = 234452;
snprintf(buffer, 10, "%d", value);
Both functions are similar to fprintf
, but output is written into an array rather than to a stream. The difference between sprintf
and snprintf
is that snprintf
guarantees no buffer overrun by writing up to a maximum number of characters that can be stored in the buffer
.
Converting an int to std::string
You can use std::to_string in C++11
int i = 3;
std::string str = std::to_string(i);
Converting integer to string in c++
Character code for numbers are not equal to the integer the character represents in typical system.
It is granteed that character codes for decimal digits are consecutive (N3337 2.3 Character sets, Paragraph 3), so you can add '0'
to convert one-digit number to character.
#include <iostream>
using namespace std;
int main()
{
string s;
int b=5;
s.push_back((char)(b + '0'));
cout<<s<<endl;
}
Converting integer to string in C without sprintf
You can use itoa where available. If it is not available on your platform, the following implementation may be of interest:
https://web.archive.org/web/20130722203238/https://www.student.cs.uwaterloo.ca/~cs350/common/os161-src-html/atoi_8c-source.html
Usage:
char *numberAsString = itoa(integerValue);
UPDATE
Based on the R..'s comments, it may be worth modifying an existing itoa implementation to accept a result buffer from the caller, rather than having itoa allocate and return a buffer.
Such an implementation should accept both a buffer and the length of the buffer, taking care not to write past the end of the caller-provided buffer.
Convert int n into string of length n in C
#include <stdio.h>
#include <stdlib.h>
void number_to_alphabet_string(int n){
char buffer[n];
for(int i=0;i<n;i++){
buffer[i] = n + 64;
//check ASCII table the difference is fixed to 64
printf("%c",buffer[i]);
}
printf("\n");}
int main(void){
int C = 3;
number_to_alphabet_string(C);
int J = 10;
number_to_alphabet_string(J);
return 0;
}
If you are new to a low level programming language like C and you care about it then I strongly suggest you to go through a textbook and learn it from scratch rather than combining snipets of code. In general try to keep it simple and for tasks like that don't use complex syntax and data structures, c gives you low level control of types and that's something that you need to master if you perhaps need to use it further in the future.
Related Topics
Print Heart Shape With Words Inside
Finding Version of Microsoft C++ Compiler from Command-Line (For Makefiles)
Two Dimensional Array With Random Numbers Doesn't Change
How to Iterate Over the Words of a String
Segmentation Fault on Large Array Sizes
Why Do People Say There Is Modulo Bias When Using a Random Number Generator
Function Pointer to Member Function
Variable Number of Arguments in C++
Thou Shalt Not Inherit from Std::Vector
Why Can't the Switch Statement Be Applied on Strings
Count How Many Times Elements in an Array Are Repeated
How to Read N Bytes from a File and Put Them into a Vector<Uint8_T> Using Iterators
Remove Max Value from Simply-Connected List
What Is the Copy-And-Swap Idiom
How to Tokenize a String in C++
Why Can't Variables Be Declared in a Switch Statement