int 转 char

场景:int转char* 怎么

int转char* 如何转?
问题很基础,不过我没学过vc
1. 在VC控制台程序里:
a. int 如何转 char* ,string, CString

2. 在MFC中
a int 如何转 char*,string, CString 

需要分别导入哪个头文件?我在VC控制台程序里用CString,编译都通不过



------解决方案--------------------
1. 在VC控制台程序里:
a. int 如何转 char* ,string, CString

char szNum[10] = {0};
int a = 12345678;
sprintf(szNum, "%d", a );
string s1(szNum);//构造string
CString s2(szNum);//构造CString,不过CString需要MFC支持,在stdafx.h的最上面包含afx.h

2. 在MFC中
a int 如何转 char*,string, CString

和1相同
------解决方案--------------------
1. 在VC控制台程序里:
a. int 如何转 char* ,string, CString
---------------------------------------
格式化即可
char buf[128] = {0};
int nVal = 11;
sprintf(buf, "%d", nVal); / itoa();

string str = buf;

CString::Format(_T("%d"), nVal);

2. 在MFC中
a int 如何转 char*,string, CString
----------------------------------------
同上
------解决方案--------------------
1.控制台中(MFC中同理),int转char*用sprintf函数,在头文件<stdio.h>中(其实itoa也可以,但不建议使用)
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。
  sprintf 是个变参函数,定义如下:
  int sprintf( char *buffer, const char *format [, argument] ... );
  除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
  格式化字符串上。
  printf 和sprintf 都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。
如:
  //把整数123456打印成一个字符串保存在s 中。
   int number = 123456;
char s[25];
sprintf(s, "%d", number); //产生"123456"


2.控制台中(MFC中同理),int转string
可以先将int转为char*,再通过赋值运算将char*转为string
 
如:
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;

int main()
{
int number = 123456;
char s[25];
sprintf(s, "%d", number); //将number转为char*
string str;
str = s; //将char*转为string
cout<<"integer = "<<number<<"\ns = "<<s<<"\nstr = "<<str<<endl;
return 1;
}

输出为:
integer = 123456
s = 123456
str = 123456


3.MFC中,int转CString用CString类中的Format函数
Format函数定义如下:
void __cdecl Format(PCXSTR pszFormat,[, argument]...);
用法:
int number = 123456;
CString Str;
Str.Format(_T("%d"),number);