C++编程实践问题(持续更新)

C++编程中遇到的问题,太菜了…(持续更新中)

整数

溢出问题

问题来自LeetCode:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
可用long型整数接受返回值,再设定最大值和最小值的限定,如下:

int Function(int x) {
	long result = 0;
	
	/*处理部分*/
	
	int max = 0x7fffffff, min = 0x80000000;
	result = result > max || result < min ? 0 : result;
	return result;
}

也可以使用头文件 #include<limits.h>,这里面给定了int的最大值INT_MAX和最小值INT_MIN

char

输入

一次性读取输入数据,使用gets函数,头文件是cstdio

char A[20];
gets(A);

但VS上会报错C3861: “gets”: 找不到标识符,解决办法是将gets函数改成gets_s

char转string

//1、构造函数里有个string(size_t,char)
char x = 'a';
string s(1,x);
//2、string初始化没char,但是push_back可以
string s;
s.push_back(x);

char*转string

void function(char* src)
{
	string det = src;
}

string和unsigned char相互转换

string转unsigned char*

string pcbasn=“ABC1234567890”
unsigned char *data = (unsigned char *)pcbasn.c_str();

unsigned char* 转string

unsigned char tt[128] = { 0 };
string result= static_cast((LPCSTR)tt) ;  //"windows.h"头文件

unsigned char转string

unsigned char c = ...
string str = "";
str += c;
unsigned char* str_ = (unsigned char*)str.c_str();
std::string unsigned_char_to_string(unsigned char src)
{
	std::stringstream ss;
	ss << "0x" << std::setw(2) << std::setfill('0') << std::hex << (int)src;

	std::string s(ss.str());         // convert to string
	// std::cout << s << std::endl;
	return s;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值