C++ 如何将字符串(由数字组成)转换为 int型数字,以用于计算

stringmystr="1990"转换为:intnum=1990我用atoi遇到空格就不行了,谁有更好的办法!!谢谢!... string mystr="1 9 9 0"转换为:int num=1990 我用atoi 遇到空格就不行了,谁有更好的办法!!谢谢! 展开
 我来答
匿名用户
推荐于2018-03-10
展开全部
#include <stdio.h>
#include <iostream.h>#define MAX_LONG 0X7FFFFFFFint myatoi(char *s) { // 将数字串转换为整数值,不转换非数字字符
long sign = 1,num = 0;;
char *p = s;
if(*p == '-') {
sign = -1;
p++;
}
if(*p == '+') {
sign = 1;
p++;
}
while(*p) {
if(num >= MAX_LONG/10) {
cout<<"被转换的字串过长,整数越界。"<<endl;
return 0;
}
if((*p >= '0') && (*p <= '9')) num = 10*num + (*p) - '0';
p++;
}
return sign*num;
}int main() {
char s[11];
int num;
cout<<"请输入一个字串 : "<<endl;
// cin>>s; // cin把空格作为字符串结束标志,所以不能输入含有空格的字符串
gets(s);
num = myatoi(s);
cout<<"转换后的整数为 : "<<num<<endl<<endl;
return 0;
}
54zhangxun
推荐于2016-11-06 · TA获得超过684个赞
知道小有建树答主
回答量:374
采纳率:75%
帮助的人:146万
展开全部
用atoi函数
int atoi(char* pstr) //参数是要转的字符串,返回值就是转之后的int类型了
例:
char sz[] = "123";
int n = atoi(sz);
cout << n;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-26
展开全部
int num=0;for(int i=0;i<mystr.size();i++){
num+=(mystr.at(i)-'0')*pow(10,mystr.size()-i-1);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-26
展开全部
用atoi() num = atoi(mystr);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式