当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Long转String用法及代码示例


给定一个 Long 数 N,任务是使用 C++ 将 N 转换为字符串。

解释:

Input: N = -10243213 // long input
Output: -10243213 // string output
Explanation: -10243213 is the string in the output.

Input: N = 42131983 
Output: 42131983

方法A

在这种方法中,我们将转换每个数字到 char 并将其附加到结果字符串。

请按照以下步骤解决问题:

1. 如果数字为负数,将负号存储到任何变量中,并使长数字为正数。

if (long_num < 0) {
        signValue = "-";
        long_num = -long_num; //converting number to positive value
}

2. 提取每个数字从最后一个开始编号并转换为字符并压入堆栈。

while (long_num > 0) {

     //add last digit to stack after converting it to char    
     stringStack.push(long_num % 10 + '0');  
     long_num /= 10; // remove last digit
}

3. 当堆栈变空时,从字符串中逐一弹出字符并将其附加到结果字符串中。

while (!stringStack.empty()) {

    // append top char of stack to string
    long_to_string += stringStack.top(); 
    stringStack.pop(); // pop char from the stack
}

4. 返回带有符号值的结果字符串。

return signValue + long_to_string;

例子:

C++


// C++ program to demonstrate 
// long to string conversion 
// digit by digit
#include <bits/stdc++.h>
using namespace std;
string LongToString(long long_num)
{
    stack<char> stringStack;
    string signValue = "";
    // if long number is negative store the negative sign to
    // the signValue variable
    if (long_num < 0) {
        signValue = "-";
        long_num = -long_num;
    }
    // while number is greater than 0, get last digit from it
    // and convert it to character by adding '0' to it, and
    // push to the stack.
    while (long_num > 0) {
        char convertedDigit = long_num % 10 + '0';
        stringStack.push(convertedDigit);
        long_num /= 10;
    }
    string long_to_string = "";
    // while stack is not empty pop the character one by one
    // and append to the resultant string.
    while (!stringStack.empty()) {
        long_to_string += stringStack.top();
        stringStack.pop();
    }
    // return the resulatant string value by appending
    // singValue to it.
    return signValue + long_to_string;
}
int main()
{
    long long_num = -10243213;
    string long_to_string = LongToString(long_num);
    cout << long_to_string;
    return 0;
}
输出
-10243213

时间复杂度和空间复杂度:哦(Digit_count_of_long_number)

方法B

C++ 包含字符串流 类里面的<stream> Library 。我们可以创建一个对象字符串流类并插入任何数据类型的变量。它返回字符串对象。

  • 创建 stringstream 类的对象,即字符串流流;
  • 加长 流对象的编号,即流<<43543422;
  • 使用从流对象获取字符串对象str()方法即long_to_string = 流.str();

例子:

C++


// C++ program to demonstrate
// long to string conversion 
// using stringstream
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
    // initialize the long number
    long long_num = 43543422;
    // create a new object of stringstream class
    stringstream stream;
    // add long number to variable of type stringstream
    stream << long_num;
    string long_to_string;
    // get string object from stringstream variable using
    // str() method
    long_to_string = stream.str();
    cout << long_to_string;
    return 0;
}
输出
43543422

方法C

C++<string> Library 提供std::to_string 方法将任何数据类型转换为字符串。

String long_to_string = to_string(76456474);

例子:

C++


// C++ program to demonstrate
// long to string conversion 
// using std::to_string methods
#include <iostream>
#include <string>
using namespace std;
int main()
{
    // initialize the long number
    long long_num = 76456474;
    string long_to_string;
     
    // convert long to string using to_string() method
    long_to_string = to_string(long_num);
    cout << long_to_string;
    return 0;
}
输出
76456474


相关用法


注:本文由纯净天空筛选整理自shubhamvora05大神的英文原创作品 Convert Long to String in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。