C++ 中字符串与数字的转换

数字转字符串

1.sprintf_s函数

	//sprintf函数
	int a = 100;
	float b = 10.30;

	char str[10];

	sprintf_s(str,"%d",a);
	cout <<"a的字符串类型:"<< str<<endl;
	sprintf_s(str, "%.3lf", b);
	cout << "b的字符串类型:" << str << endl;
	sprintf_s(str, "%x", a);
	cout << "a的16进制表示:" << str << endl;

注:sprintf_s()是sprintf()的安全版本,通过指定缓冲区长度来避免sprintf()存在的溢出风险。

用于转换的格式字符:

%c                 单个字符

%d                 十进制整数(int)

%ld                十进制整数(long)

%f                 十进制浮点数(float)

%lf                十进制浮点数(double)

%o                 八进制数

%s                 字符串

%u                 无符号十进制数

%x                 十六进制数

2.itoa函数

char *itoa(int value, char* string, int radix),不过与平台相关,一般不使用。

3.Format函数(double/float->CString)MFC

CString.Format("%.3lf",data)

4.ostringstream类<sstream>

ostringstream os;
double a=123.4;

os<<a;
cout<<os.str();


字符串转数字

1.sscanf_s函数

	char str[] = "123.321";
	double a;

	sscanf_s(str, "%lf", &a);

	cout << "a的字符串表示:" << a;

2.atoi/atol/atof函数

atoi:转换为整型,atol:转换为长整型,atof:转换为浮点类型

3.istringstream类<sstream>

istringstream is;
char str[]="123.45";
double a;

is.str(str);

is>>a;
cout<<a;


猜你喜欢

转载自blog.csdn.net/weixin_42078760/article/details/80592824
今日推荐