VC++中如何将字符串换成整型

void CjiheDlg::OnBnClickedButton1()
{
char times[10];
int Times;
int i;
GetDlgItemText(IDC_Time,(LPTSTR)times,10);
Times = atoi((LPTSTR)times); // 知道了用_wtoi()就可以了。此处用atoi提示不成功,不知该用那个函数?请高手指点。提示:(error C2664: 'atoi' : cannot convert parameter 1 from 'LPTSTR' to 'const char *')
for(i=0;i<Times;i++)
................

有两种方法:如下(都要加头文件cstring):
1.直接调用库函数:
int m; char c[50];
cin>>c;
m=atoi(c);
cout<<m<<endl; //即可
2.模拟实现
int i,l,sum=0;
l=strlen(c);
for(i=0;i<l;i++)
sum=sum*10+c[i]-48; //c[i]-48即将每一位字符型的数字转换为整型数字
cout<<sum<<endl; //即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-13
atoi函数是c的函数,它的输入参数是char *类型。
你声明了string h变量,string是C++类型,C函数不识别这个C++类型。

两种方法
1.按照c方式定义h,char h[20];数组数值你可以根据实际情况修改。
2.按照C++方式,使用string类的c_str函数,如k=atoi(h.c_str()),c_str函数可以将string类型转换为c的char *类型。本回答被网友采纳
第2个回答  2011-01-12
char szDigit[10] = "12356";
int nDigit = 0;
long lDigit = 0;
nDIgit = atoi(szDigit);
lDigit = atol(szDigit);
sscanf(szDigit, "%u", &nDigit);
sscanf(szDigit, "%u", &lDigit);
第3个回答  2011-01-12
CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。
而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = 64;
s.Format("%d", i)
Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString
ss="1212.12";
int temp=atoi(ss);
CString aa;
aa.Format("%d",temp);
AfxMessageBox("var is " + aa);
}

参考资料:http://hi.baidu.com/smile2tomorrow/blog/item/68f7872f2267bd3b1f30899f.html

本回答被提问者采纳
第4个回答  2011-01-12
int i = atoi(s)
相似回答