编写string相关的代码时研究别人的代码发现string库里面的相关功能。特意列举,方便学习和使用。
str.insert(str.begin(), '0')
通过这个语句,我们可以直接在字符串前面添加0,与while结合使用,可以实现补0的功能。
int value = stoi(b) - stoi(a);
stoi可以讲字符串强制转换成整形
str = to_string(value);
to_string可以将整形转换成字符串
#include <iostream>
#include <string>
#include <algorithm>
//#include <unistd.h>
using namespace std;
bool compare(char a, char b)
{
return a>b;
}
int main()
{
string str;
cin >> str;
while (str.size()<4)
str.insert(str.begin(), '0');//小于1000就在前面补充一个0
while (1)
{
string a, b;
sort(str.begin(), str.end());
a = str;
sort(str.begin(), str.end(), compare);
b = str;
if (a == b)
{
cout << b << " - " << a << " = " << "0000" << endl;
break;
}
int value = stoi(b) - stoi(a);
str = to_string(value);
while (str.size()<4)
str.insert(str.begin(), '0');
cout << b << " - " << a << " = " << str << endl;
if (value == 6174)
break;
}
}