C++ 如何将字符串(由数字组成)转换为 int型数字,以用于计算
stringmystr="1990"转换为:intnum=1990我用atoi遇到空格就不行了,谁有更好的办法!!谢谢!...
string mystr="1 9 9 0"转换为:int num=1990 我用atoi 遇到空格就不行了,谁有更好的办法!!谢谢!
展开
4个回答
推荐于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;
}
#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;
}
展开全部
用atoi函数
int atoi(char* pstr) //参数是要转的字符串,返回值就是转之后的int类型了
例:
char sz[] = "123";
int n = atoi(sz);
cout << n;
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);
}
num+=(mystr.at(i)-'0')*pow(10,mystr.size()-i-1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-26
展开全部
用atoi() num = atoi(mystr);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询