Worldscope

C++ int to string

Palavras-chave:

Publicado em: 05/08/2025

C++ int to String Conversion

This article explains how to convert an integer (`int`) to a string (`std::string`) in C++. Converting an integer to a string is a common task in software development, especially when dealing with user input/output, data serialization, or logging. We'll cover a standard and efficient approach using the `std::to_string` function.

Fundamental Concepts / Prerequisites

To understand the content of this article, you should have a basic understanding of:

  • C++ data types (int, std::string).
  • Basic input/output operations using iostream.
  • The C++ Standard Template Library (STL), particularly the std::string class.

Core Implementation/Solution: Using std::to_string

The easiest and generally preferred way to convert an integer to a string in C++ is to use the std::to_string function, which is part of the C++ Standard Library. This function handles the conversion automatically and is both efficient and safe.


#include <iostream>
#include <string>

int main() {
  int myInt = 12345;
  std::string myString = std::to_string(myInt);

  std::cout << "Integer: " << myInt << std::endl;
  std::cout << "String: " << myString << std::endl;

  return 0;
}

Code Explanation

The code works as follows:

  1. #include <iostream> and #include <string>: These lines include the necessary header files. iostream is required for input/output operations (std::cout), and string is required for using the std::string class and the std::to_string function.
  2. int myInt = 12345;: This declares an integer variable myInt and initializes it with the value 12345.
  3. std::string myString = std::to_string(myInt);: This is the core of the conversion. The std::to_string function takes the integer myInt as input and returns a std::string representation of that integer. This string is then assigned to the variable myString.
  4. std::cout << "Integer: " << myInt << std::endl; and std::cout << "String: " << myString << std::endl;: These lines print the original integer and the converted string to the console for verification.
  5. return 0;: Indicates successful execution of the program.

Complexity Analysis

The time and space complexity of using std::to_string generally depends on the underlying implementation, which can vary across different compilers and standard library versions. However, we can analyze it based on typical implementations:

  • Time Complexity: O(n), where n is the number of digits in the integer. The conversion process involves extracting each digit from the integer and building the string representation. Since the number of digits in an integer grows logarithmically with its value, we could also express it as O(log(x)) where x is the value of the integer.
  • Space Complexity: O(n), where n is the number of digits in the integer. The resulting string needs to store these digits. Therefore, the space required grows linearly with the number of digits. Similar to time complexity, this can also be described as O(log(x)) where x is the value of the integer.

Alternative Approaches

While std::to_string is the recommended method, another approach involves using stringstreams:


#include <iostream>
#include <string>
#include <sstream>

int main() {
  int myInt = 12345;
  std::stringstream ss;
  ss << myInt;
  std::string myString = ss.str();

  std::cout << "Integer: " << myInt << std::endl;
  std::cout << "String: " << myString << std::endl;

  return 0;
}

This approach creates a std::stringstream object, inserts the integer into it, and then extracts the string representation using the str() method. This method is functionally equivalent to std::to_string, but std::to_string is usually more concise and can be slightly more efficient. However, stringstreams are much more versatile for more complex formatting needs.

Conclusion

Converting an integer to a string is a fundamental operation in C++. The std::to_string function offers a straightforward and efficient way to accomplish this. While alternative methods like stringstreams exist, std::to_string is generally the preferred choice for simple integer-to-string conversions due to its simplicity and potential performance benefits. Understand the time and space complexity associated with these methods ensures you can choose the most appropriate approach for your specific application.