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

string mystr="1 9 9 0"转换为:int num=1990 我用atoi 遇到空格就不行了,谁有更好的办法!!谢谢!

#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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-06
用atoi函数
int atoi(char* pstr) //参数是要转的字符串,返回值就是转之后的int类型了
例:
char sz[] = "123";
int n = atoi(sz);
cout << n;
第2个回答  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);

}
第3个回答  2013-08-26
用atoi() num = atoi(mystr);
相似回答