您的位置:首页 > 编程语言

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

2012-04-03 20:16 706 查看

方法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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐