写一个函数,检查字符是否是整数,如果是,返回其整数值(或:怎样只用4行代码编写出一个从字符串到长整型的函数)

来源:互联网 发布:it行业找工作网站 编辑:程序博客网 时间:2024/05/16 07:20

方法1:

#include <stdlib.h>#include <stdio.h>#include <string>#include <iostream>using namespace std;long strtoint(char *str,int length);int main(int argc, char* argv[]){int i=0;char str[100];while ((str[i]=getchar())!='0') {i++;}long n=strtoint(str,i);cout<<n<<endl;return 0;}long strtoint(char *str,int length){if(length > 1) {return str[0]=='-' ? strtoint(str, length-1)*10-(str[length-1]-'0') : strtoint(str, length-1)*10+str[length-1]-'0';} else {return str[0]=='-' ? -1/10 : str[0]-'0';}}


方法2:

#include <stdlib.h>#include <stdio.h>#include <string>#include <iostream>using namespace std;int CovertStringToLon(char *str,long &lLongValue);int main(int argc, char* argv[]){char *str = "-123";long m;CovertStringToLon(str,m);cout<<"2  "<<m;system("pause");return 0;}int CovertStringToLon(char *str,long &lLongValue) { char *p = ((*str == '-'|| *str == '+') ? str+1:str);for(lLongValue = 0; *p >= '0' && *p <= '9' && *p != 0; p++) lLongValue = lLongValue * 10 + (*p- '0'); lLongValue = (*str== '-')?(-lLongValue):(lLongValue); return (*p == 0 ? 1:0); } 



原创粉丝点击