欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++刷题常用到的一些函数

程序员文章站 2024-02-21 17:13:22
...

1.字符串相关

1.倒置函数:把某个字符串倒过来

#include <algorithm>
string result = "";
reverse(result.begin(), result.end());

2.数字转字符串

详情请看这

std::string to_string(int value); (1) (C++11起)
std::string to_string(long value); (2) (C++11起)
std::string to_string(long long value); (3) (C++11起)
std::string to_string(unsigned value); (4) (C++11起)
std::string to_string(unsigned long value); (5) (C++11起)
std::string to_string(unsigned long long value); (6) (C++11起)
std::string to_string(float value); (7) (C++11起)
std::string to_string(double value); (8) (C++11起)
std::string to_string(long double value); (9) (C++11起)

std::to_string是C++标准(2011年)的最新版本中引入的功能。旧的编译器可能不支持它
1)有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%d”, value)会产生足够大的buf.

2)有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%ld”, value)会产生足够大的buf.

3)有符号十进制整数转换为字符串内容相同的std::sprintf(buf, “%lld”, value)会产生足够大的buf.

4)std::sprintf(buf, “%u”, value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

5)std::sprintf(buf, “%lu”, value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

6)std::sprintf(buf, “%llu”, value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.

6)std::sprintf(buf, “%llu”, value)会产生足够大的buf了同样内容的一个字符串转换成一个无符号十进制整数.
7,8) std::sprintf(buf, “%f”, value)会产生足够大的buf了同样内容的一个字符串转换成一个浮点值.

  1. std::sprintf(buf, “%Lf”, value)会产生足够大的buf了同样内容的一个字符串转换成一个浮点值.

在较低版本C++标准中有另外几种格式将整数转为字符串:

1.cstdlib中的itoa() (非标准的C函数, Windows特有的);
2.sprintf();
3.stringstream.str();

2.进制转换

1.10进制转其他进制

#include<iostream>
#include<algorithm>
using namespace std;
//digital为10进制数,r为需要转换的目标进制,返回目标进制数
string dtox(int digital,int r){
	string result="";
	const char s[37]="0123456789abcdefghijklmnopqrstuvwxyz";
	if(digital==0){
		return "0";
	}
	while(digital!=0){
		int tmp =digital%r;
		result+=s[tmp];
		digital/=r;
	}
	reverse(result.begin(),result.end());
	return result;
}

相关标签: 刷题