关于把字符串整数转换成整数的程序
前几天去了先锋商泰面试,在面试时做了一个把输入的整数(例如:4238)重新排序成2348输出的题目。
由于自己没有准备充分,只是把功能写出来了。后来没有拿到offer。
今天在看《剑指offer》时,发现自己少了很多边界条件和错误的处理。在剑指offer这本书上有个题目:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int StrToInt(char *str);
int main(int argc, const char *argv[])
{
char *str;
int num = 0;
str = (char *)malloc(sizeof(char) * 100);//为指针申请堆空间
if(str == NULL)
{
perror("malloc");
exit(-1);
}
scanf("%s",str);//从终端接收字符数据
num = StrToInt(str);//调用函数
printf("this num is %d\n",num);
free(str);
return 0;
}
int StrToInt(char *str)
{
int num = 0;
int symbol = 1;
if( str == NULL )//检验是否为空指针
{
perror("str is null");
exit(-1);
}
if(*str == '-')//检验正负
{
symbol = -1;
str ++;
}
if(strlen(str) > 10 || strlen(str) == 10 && *str > '2')//检验输入的整数是否超过范围
{
perror("this integer is too big");
exit(-1);
}
while( *str != 0 )//如果字符串没有结束,则继续
{
if(*str >= 48 && *str <= 58 && symbol == 1)//如果字符是0~9且为正数
{
num = num * 10 + *str - '0';//加
++str;
}
else if (*str >= 48 && *str <= 58 && symbol == -1)//如果字符是0~9且为负数
{
num = num * 10 - *str + '0';//直接减
++str;
}
else//如果有非0~9的字符,则报错退出
{
perror("this is not a number");
exit(-1);
}
}
if( symbol == 1 )//看是否超过2147483647,若超过,则num变为负数(前面已经限定num的绝对值不超过3000000000)
{
if( num < 0 )
{
perror("is up overflow");
exit(-1);
}
}
if( symbol == -1 )//看是否超过-2147483648,若超过,则num变为正数(同上)
{
if( num > 0 )
{
perror("is down overflow");
exit(-1);
}
}
return num;//返回值
}
转载于:https://www.cnblogs.com/vonyao/p/3614334.html
关于把字符串整数转换成整数的程序相关推荐
- JAVA字符串怎么转换成整数
首先你要确定你的字符串可以转换为int类型的,比如说: String s = "123"; 如果String s = "abc";则转换时会报错! 需要的包是& ...
- 把字符串转换成整数(2014年阿里巴巴实习生招聘面试题)
题目:写一个strToInt函数,实现字符串str转换成整数num. 如何将字符串转换成整数,本文使用Java列出了三种方法: 1.利用java.lang.Integer类中的静态函数parseInt ...
- java浮点数化为整数_[Java教程]javascript浮点数转换成整数三种方法
[Java教程]javascript浮点数转换成整数三种方法 0 2014-06-24 04:00:27 将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如 ...
- oracle 转化为整数,字符串转换成整数——从源码学习
字符串转换成整数:输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345. 在笔试面试中,atoi 即「字符串转换成整数」是一个经典问题了 ...
- 将十六进制的字符串转换成整数
#include "stdafx.h" #include<stdio.h> #include<string.h>/*将大写字母转换成小写字母*/ int t ...
- python 字符串转换成整数
| String to Int 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个 ...
- 程序员面试题精选100题(17)-把字符串转换成整数[算法]
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程 ...
- 判断字符为空_49. 把字符串转换成整数(剑指offer)
49. 把字符串转换成整数 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0. 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输 ...
- 算法笔记_028:字符串转换成整数(Java)
1 问题描述 输入一个由数字组成的字符串,请把它转换成整数并输出.例如,输入字符串"123",输出整数123. 请写出一个函数实现该功能,不能使用库函数. 2 解决方案 解答本问题 ...
最新文章
- 机器学习(MACHINE LEARNING)使用ARIMA进行时间序列预测
- 【通知】有三AI GPU平台上线新功能,GPU/CPU可灵活选择
- Maven for Eclipse 第二章 ——安装 m2eclipse插件
- AdlinkMotionCardLibrary函数C++
- Linux 设备驱动的固件加载
- mt6765和骁龙665哪个好_华为都把骁龙850用在了自家的win10设备上了,麒麟还会远吗?...
- xshell用ssh连接VMware中的ubuntu
- 团“模子”政策模式乱舞
- 网页聊天室php无数据库_无需数据库的PHP聊天室程序
- js调用android手写输入法,jQuery手写输入法代码
- java 判断时间24小时_Java 判断时间是否超过24小时
- 如何在 HTML 中调整图像大小?
- VFP开发微信、支付宝扫码支付
- 校园网状态下通过智能插座为ipad实现远程智能充电
- 关于经典面试一年多少秒的思考!启发#define与UL!整形常量的定义
- 实战项目:设计实现一个流程编排框架(实现)
- 实验 snort安装配置与规则编写
- 软件测试工程师求职踩过的坑——实战经验的分享啊
- 情绪分析,词性分析和词义消歧
- App/H5/小程序测试技术
热门文章
- 如何把自己的经历写成小说_*IT 项目经验:足迹第五十四步:梳理自己经历的几种项目框架与如何甄别项目使用的框架...
- jar java classpath_Java ClassLoader和ClassPath
- Matrix Differentiation(矩阵求导)以及矩阵求导常用公式
- leetcode —— 面试题36. 二叉搜索树与双向链表
- Python多重继承时属性的调用顺序
- Hibernate框架 一对多,多对多映射
- 离线排序——LR模型
- android+证书存储,Firefox for Android是否使用设备证书存储?
- 安装npm_微信小程序使用npm安装第三方库
- int** 赋值_一篇文章搞明白Integer、new Integer() 和 int 的概念与区别