题目:
int类型数据转换为string
解析:
将int类型number重复做如下运算:number % 10;number /= 10;将取余所得结果转换为对应的字符加入string中。
注意:
1 int类型number的正负,如果是负号,要在字符串中添加字符 '-'
2 int类型为0时,字符串为“0”,算法结束;
算法实现:
void IntToStr(int number, string& str)
{
//判断number正负
bool minus = false;
if (number < 0)
{
minus = true;
number = 0 - number;
}
else if (0 == number)
{
str.push_back('0');
return;
}
//将number从低位到高位一次存入字符串
while (number)
{
str.push_back(number % 10 + '0');
number /= 10;
}
//若number为负,则添加符号
if (minus)
{
str.push_back('-');
}
//翻转字符串中的数字
std::reverse(str.begin(), str.end());
}
算法测试:
#include <iostream>
#include <string>
using namespace std;
void IntToStr(int number, string& str)
{
str.clear();
//判断number正负
bool minus = false;
if (number < 0)
{
minus = true;
number = 0 - number;
}
else if (0 == number)
{
str.push_back('0');
return;
}
//将number从低位到高位一次存入字符串
while (number)
{
str.push_back(number % 10 + '0');
number /= 10;
}
//若number为负,则添加符号
if (minus)
{
str.push_back('-');
}
//翻转字符串中的数字
std::reverse(str.begin(), str.end());
}
int main()
{
string str;
IntToStr(0, str);
cout << str << endl;
IntToStr(-1, str);
cout << str << endl;
IntToStr(2, str);
cout << str << endl;
return 0;
}