写一个函数,检查字符是否是整数,如果是,返回其整数值
2013-01-12 16:05
429 查看
cpp]
view plaincopyprint?
写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数)
#include "stdafx.h"
#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';
}
}
以下为自己对算法的描述:
1.首先考虑一些测试用例:正数和负数的情况,负数的情况就是必须考虑到字符串的第一个字符是不是‘-’ ,如果不是‘-’,就标记一下字符串的最后一位,然后前面的字符串再次进行递归。(其实递归完全没有必要啊,只要扫描字符串即可,时间复杂度是0(n),这和求10的余数,求被10整除之后的数的方法是一样的)。
2.对于编码时,应该考虑的就是给了一个函数原型,要明白输入是什么,输出是什么,哪些能够改变,哪些需要在函数中申请地址空间等等一些细节问题。
3.对于字符串转换成正数的情况,一般是把字符串中相应位的内容取出来,然后减去0的ascaii:‘0’既可以得到他们的整数表示形式,这个很常见,一定是要有这种意识的。
view plaincopyprint?
写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数)
#include "stdafx.h"
#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';
}
}
以下为自己对算法的描述:
1.首先考虑一些测试用例:正数和负数的情况,负数的情况就是必须考虑到字符串的第一个字符是不是‘-’ ,如果不是‘-’,就标记一下字符串的最后一位,然后前面的字符串再次进行递归。(其实递归完全没有必要啊,只要扫描字符串即可,时间复杂度是0(n),这和求10的余数,求被10整除之后的数的方法是一样的)。
2.对于编码时,应该考虑的就是给了一个函数原型,要明白输入是什么,输出是什么,哪些能够改变,哪些需要在函数中申请地址空间等等一些细节问题。
3.对于字符串转换成正数的情况,一般是把字符串中相应位的内容取出来,然后减去0的ascaii:‘0’既可以得到他们的整数表示形式,这个很常见,一定是要有这种意识的。
相关文章推荐
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
- 算法--写一个函数检查字符是否是整数,如果是返回其整数值
- 微软等数据结构+算法面试100题(6)--写一个函数,检查字符是否是整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值(或:怎样只用4行代码编写出一个从字符串到长整型的函数)
- 计算机笔试题:写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数)
- 写一个函数,检查字符里面是否是有整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
- 微软:写一个函数,检查字符是否是整数,如果是,返回其整数值。
- 写一个函数,检查字符是否是整数,如果是,返回其整数值(最好用四句代码写出)
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 写一个函数,检查字符是否是整数,如果是,返回其整数值
- 微软2 写一个函数,检查字符是否是整数,如果是,返回其整数值。
- 计算机笔试题:写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整型的函数)
- 编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对美个字符 程序需要检查并报告改字符是否是一个字母。如果是报告字母在字符表中的位置,否则返回-1
- 这个字符串参数必须包含一个或多个数字,函数应该把这些 数字字符转换为整数并返回这个整数。如果字符串参数包含 了任何非数字字符,函数就返回零。
- 编写函数,检查给定字符串是否整数,如果是,返回其整数值
- 字符串包含一个或多个数字,编写函数把数字字符转化为整数并返回这个整数。如果字符串包含任何非数字字符,函数就返回零。