1:首先,根据课本上的程序,是这样的:

  1. #include "stdafx.h"
  2. #include "iostream"
  3. using namespace std;
  4. int StrToInt(char* string);
  5.  
  6. int StrToInt(char* string)
  7. {
  8. int number=;
  9. while(*string!=)
  10. {
  11. number=number*+*string-'';
  12. ++string;
  13. }
  14. return number;
  15. }
  16.  
  17. int main(int argc, char* argv[])
  18. {
  19. char *a="";//定义一个字符串
  20. //while(*a!=0)//测试是不是字符串
  21. //{
  22. //cout<<*a<<endl;
  23. //++a;
  24. //}
  25. cout<<StrToInt(a)<<endl;
  26. return ;
  27. }

2:然后对弈number=number*10+*string-'0';提出疑问。number是整数,string是指向字符串的指针,*string就是字符串里的字符,然后“字符-字符=?”。注意:C中的字符的算术运算。实际上是字符的ASCII代码运算。因此,*string-'0'是其相应的ASCII代码做减法。

3:将代码改成键盘输入,屏幕输出的形式后,如下所示:

  1. #include "stdafx.h"
  2. #include "iostream"
  3. using namespace std;
  4. int StrToInt(char* string);
  5.  
  6. int StrToInt(char* string)
  7. {
  8. int number=;
  9. while(*string!=)
  10. {
  11. number=number*+*string-'';
  12. ++string;
  13. }
  14. return number;
  15. }
  16.  
  17. int main(int argc, char* argv[])
  18. {
  19.  
  20. //char a='y';//单引号代表这个东西是字符,双引号代表这个东西是字符串
  21. //char *b=&a;
  22. //cout<<a<<endl;//输出字符y
  23. //cout<<b<<endl;//输出字符y的地址
  24. char str1[];//字符串数组的名就是字符串的第一个字符的地址
  25. cin>>str1;
  26. //cout<<str1<<endl;//以字符串的形式输出
  27. cout<<StrToInt(str1)<<endl;
  28. return ;
  29. }

4:考虑到非数字字符和正负号的时候,并将代码改成输入一段字符串,然后输出整数。如下所示:

5:考虑最大正整数和最小负整数以及溢出。

剑指offer:把一个支付算转化为整数的更多相关文章

  1. 剑指offer系列53---字符串转化成整数

    [题目]将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数 * []整数(32位)最大值:0X7fff ffff( 0111 1111 1111 1111 1111 1111 1111 1 ...

  2. 《剑指offer》面试题32----从1到n整数中1出现的次数

    题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次. 解法一:不考虑时间效率的解法(略) ps ...

  3. [剑指Offer]50-第一个只出现一次的字符

    题目链接 https://www.nowcoder.com/practice/1c82e8cf713b4bbeb2a5b31cf5b0417c?tpId=13&tqId=11187&t ...

  4. 剑指Offer面试题:10.数值的整数次方

    一.题目:数值的整数次方 题目:实现函数double Power(doublebase, int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 在.N ...

  5. 剑指offer 12.代码的完整性 数值的整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方.   本人渣渣代码: public double Power(double ba ...

  6. 剑指offer——python【第31题】整数1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  7. 【剑指offer】面试题 16. 数值的整数次方

    面试题 16. 数值的整数次方 题目描述 题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解答过程 下面的讨论中 x 代表 bas ...

  8. 剑指Offer(书):数值的整数次方

    题目:给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 分析: * 要注意以下几点:* 1.幂为负数时,base不能为0,不然求的时候是对 ...

  9. 【校招面试 之 剑指offer】第16题 数值的整数次方

    方法1:直接求解,但是要注意特殊情况的处理:即当指数为负,且底数为0的情况. #include<iostream> using namespace std; template<typ ...

随机推荐

  1. python网络爬虫(6)爬取数据静态

    爬取静态数据并存储json import requests import chardet from bs4 import BeautifulSoup import json user_agent='M ...

  2. 第四篇 jQuery中的事件与应用

    4.1 事件中的冒泡现象,ready()方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  3. Linux内核、mysql内核、Tcp/Ip内核、java等知识书籍

    LINUX <linux内核设计与实现>(2011年出版,链接:https://pan.baidu.com/s/107hriLNVt05A8egeU8Du-g  密码:0cgn) < ...

  4. flume复习(二)

    一.简介:flume是一种分布式.可靠且可用的系统,能够用于有效的从不同的源收集.聚合和移动大量的日志数据到集中式数据存储.它具有基于流数据的简单灵活的架构,它具有健壮的可靠性机制和许多故障转移和恢复 ...

  5. 第十五篇 JS 移入移出事件 模拟一个二级菜单

    JS 移入移出事件 模拟一个二级菜单   老师演示一个特别简单二级菜单,同学们除了学习JS,还要注意它的元素和CSS样式. 这节课介绍的是JS鼠标移入.移出事件:onmouseover是移入事件,on ...

  6. Docker容器入门之一:部署SpringBoot项目

    一.环境准备:    1.vm虚拟机: Workstation 12 Pro 12.5.7 build-5813279 2.Centos 7 在虚拟机上安装好Centos7系统后,就可以开始准备安装D ...

  7. 设置Windows静态IP+动态IP

    静态IP 设置以太网属性 进入IPv4属性 设置IPv4 动态IP 同上方法,只不过选成了自动

  8. 网络初级篇之OSPF(二)实验

    一.实验目的:     下面关于OSPF的实验,仔细看配置过程,以增加对OSPF的理解. 二.实现目标:     使用OSPF实现所有主机之间的通信 三.配置过程: 1.AR1的配置过程:      ...

  9. centos7搭建ntp时间同步服务器chrony服务

    centos7搭建ntp时间同步服务器chrony服务 前言: 在centos6的时候我们基本使用的是ntp服务用来做时间同步,但是在centos7后推荐是chrony作为时间同步器的服务端使用, ...

  10. Powerful array CodeForces - 86D (莫队算法)

    An array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, a ...