要点:要考虑到各种非法参数。
实现:
/********************************** 字符串转整数 by Rowandjj 2014/7/15 ***********************************/ #include<iostream> #include<stdlib.h>//不加这个头文件在九度oj上会编译错误 using namespace std; int state = 0;//0代表串非法,1代表正常 long Str2Int(const char *str) { long num = 0; if(str == NULL)//输入null { state = 0; return 0; } const char* digit = str; int minius = 0;//0代表正数,1代表负数 while(*digit == ' ')//跳过空格 { digit++; } if(*digit == '+') { digit++; } else if(*digit == '-') { minius = 1; digit++; } if(*digit == '\0')//只输入+或者- { state = 0; return 0; } while(*digit != '\0') { if(*digit > '9' || *digit < '0')//非法字符 { state = 0; return 0; } state = 1; num = num*10 + (*digit - '0');//核心代码 digit++; } //越界 if(*digit>0x7fffffff || *digit<(signed int)0x80000000) { state = 0; return 0; } return minius?(0-num) : num; } int main() { long digit; char str[1000]; char *p = str; while(cin>>p) { digit = Str2Int(p); if(state==0) { cout<<"My God\n"; }else//state == 1 { cout<<digit<<endl; } } return 0; }
返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/
作者:csdn博客 RowandJJ
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串
, return
, oj
, if
, 输入
, digital
, 整数
, state
, oj问题
字符串转int
c 整数转字符串、python整数转字符串、java 整数转字符串、整数转字符串、整数转换为字符串,以便于您获取更多的相关知识。
时间: 2025-01-20 18:38:58