一个数(而不是一个数字) 如何转为char str[]:
直接上代码前,先对 用到的函数做一下说明。
int sprintf ( char * str, const char * format, … );
//将格式化的数据写入字符串
官方文档解释说,
str参数:
指向所产生的C(c++)字符串的一个字符数组的指针。
const char* format 参数:
包含要写入缓冲区的文本的字符串。它可以选择性地包含被替换的值,这些标签被随后的参数中指定的值所替代,并按要求格式化。
附加参数:
取决于格式字符串,函数可以期望一个附加参数的序列,每个包含一个值被插入,而不是每一个指定的格式参数中指定的标签,如果有。应该有相同数量的这些参数,作为期望值的“%”标签的数量。
int 返回值:
返回的字符总数。此计数不包括在字符串的结尾自动添加的附加的空字符。在故障时,返回一个负数。
sprintf () 简单应用:
/* sprintf example */
#include <stdio.h>
int main ()
{
char buffer [50];
int n, a=5, b=3;
//返回字符串个数
n=sprintf (buffer, "%d plus %d is %d", a, b, a+b);
printf ("[%s] is a %d char long string\n",buffer,n);
return 0;
}
Output:
[5 plus 3 is 8] is a 13 char long string
下面正式上代码:
int ->char[]、string
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n = 65535;
char t[256];
string s;
//转换 int -> char*
sprintf(t, "%d", n);
s = t; // char* -> string
//打印结果
for(int i = 0;i < 6; i++)
cout <<t[i]<<endl;
cout << s << endl;
return 0;
}
结果为:
另一种方法:
#include <iostream>
#include <string>
#include <strstream>
using namespace std;
int main()
{
int n = 65535;
strstream ss;
string s;
ss << n;
ss >> s;
cout << s << endl;
return 0;
}
输出为: