String模板

写在开头:学习 用这是一些总结的方法不喜勿喷。。。

string 系列

  • 转字符
string Transfer_character(int n)
{ //将n转为字符
	string a;
	while (n)
	{
		a.append(1, (char)(n % 10 + 48));
		n /= 10;
	}
	return a;
}

注意:转换过后是倒序!

例: n = 14458 则 a = 85441

  • 去零
void Remove_0(string *a)
{ //去'0'
	while (a->at(a->length() - 1) == '0' && a->size() > 1)
	{
		a->erase(a->length() - 1, 1);
	}
}
  • 转数字 (也是逆序)
int trann(string str) //将str转为数字
{
	int pow[11] = {0, 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000}; //用以更快的算幂次
	int k = str.length();
	int n = 0;
	for (int i = 0; i < k; ++i)
	{
		n += (str[i] - 48) * pow[i + 1];
	}
	return n;
}

例: str = “77458” 则 n = 84577 可以和上文搭配着用。。。

Tags: