• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

字符型转换为整型???

h2023197 2004-11-27 10:58:24
我定义了一个CString型的变量str,str="1",我想使它能够自身累加,需要变为整型吧,但我又不清楚具体的函数,请高手帮帮我,小弟还是个新手。谢谢!!!!
...全文
106 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
h2023197 2004-11-28
谢谢各位仁兄,小弟的问题解决了!!!
回复
qiqiyeye 2004-11-27
char a=str.getat(0);//先获得字符1
int b=a-48;//0的ASCII码是48
b++;
回复
handwolf 2004-11-27
float CLineMenu::StrToFloat(CString str)
/////////////////////////////////////////StrToFloat
//Author: handwolf
//Date: 2004.3.17
//str: string that will be converted to float value
// return value:
// |____ if success, float value of the str
// |____ if unsuccess, 0
/////////////////////////////////////////
{
char chGet;
float fResult=0;
int nPos;
float fMulty1=10,fMulty2=1,flag=1;
for(nPos=0;nPos<str.GetLength();nPos++)
{
if((chGet=str.GetAt(nPos))=='.')
{ //if there are more than one '.' in the str
//fMulty2 is a float data
if(fMulty2<0.11&&fMulty2>0.09)
{
fResult=0;
break;
}
fMulty1=1;
fMulty2=0.1;
flag=0.1;
continue;
}
else if(chGet>='0'&&chGet<='9')
{
fResult=fResult*fMulty1+(chGet-'0')*fMulty2;
fMulty2=fMulty2*flag;
}
else
{
fResult=0;
break;
}
}
return fResult;
}

void Add(CString& str,int flNum)
{
int tmp = StrToFloat(str);
str.Format(%d",tmp+num);
}

测试
CString str="1";
Add(str,1);
之后str 为 "2";
回复
Mr-Chen 2004-11-27
sscanf(str, "%d", &nVal);
回复
kugou123 2004-11-27
atoi
回复
ervinsas 2004-11-27
long i;
int end = 500;//自加到多少
char *stopstring;
for(int j = 0;j < end;j++)
{
i = strtol(str,&stopstring,0);
i++;
str.Format("%d",i);
TRACE("%s\n",str);
}
这就可以啦!试试!

回复
fql_life 2004-11-27
上面说得 非常好 就是这样做。
回复
rainfall19831109 2004-11-27
同意楼上,使用字符变量作为函数atoi的参数,返回值就是一个int型的了~~
回复
washing2000 2004-11-27
字符串变整型:atoi(char *);
比如: CString ss="10";
int i=atoi(ss);
i+=1;
ss.Format("%d",i);

ss就变成11了。
回复
qrlvls 2004-11-27
如果不是 Unicode 版本

sscanf((LPCSTR)(LPCTSTR)str, "%d", &nVal);
回复
qiqiyeye 2004-11-27
忘了定义cValue数组了
char cValue[100];
回复
qiqiyeye 2004-11-27
那就这样写...
CString str="123";
sprintf(cValue,"%s",str);
int i=0;
sscanf(cValue,"%d",&i);
i++;
回复
kilnut 2004-11-27
你这个数字是始终一位吗?
那样就简单,否则上面的肯定不行
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-11-27 10:58
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……