bool myatoi(const char *s,int &num)
{
cout<<(&s)<<endl;
num=;
while (*s)
{
if ((*s)>=''||(*s)<='')
{
num=num*+((*s)-'');
}
else
return false;
s++;
//cout<<"The address of pstr is: "<<static_cast<void*>(const_cast<char*>(str))<<endl;
cout<<"prt:"<<(void*)s<<endl;
}
return true;
}
int main()
{
char *s="";
int num;
myatoi(s,num);
cout<<num<<endl;
char s1='';
char s2='';
char s3=s1-s2;
cout<<s3<<endl;
int i=s1-s2;
cout<<i<<endl;
return ; }

首先要分清楚:字符数组和字符串的关系!
字符串存放在数组中,因此,一个字符数组可以存放几个串,单字符串函数只认字符串结束标志'\0';
1. strlen(wer wer):字符串为"wer_wer"这种字符串常量,系统会在其后自动补上'\0';而求字符串长度的函数strlen()只要遇见'\0';就返回函数值!而且'\0'不算在其中!故返回值为7(空格也算一个字符!)
2. strlen(wer\0wer) 其中的字符串为"wer\0wer"而strlen函数遇到'\0'即结束,故返回值为:3
3. '\0'不是空格,也不是回车!通过ASCII码表,你可知道,'\0'是ASCII码值代表0(NULL);而空格的ASCII码为:  '\32' 32 回车的ASCII码值为'\13'  13

所以while (*s)当s++到最后*s=NULL,循环结束。

注意打印字符串指针不能使cout<<s;

因为<<操作符重载了吧,会默认输出字符串的值。必须显示转换为(void *)才可取得地址。

规范写法:cout<<"The address of pstr is: "<<static_cast<void*>(const_cast<char*>(str))<<endl; 类型转换安全
        cout<<"prt:"<<(void*)s<<endl;这样也可以。

注意cout<<&s;输出的是字符串指针的地址。

自己实现atoi的更多相关文章

  1. [LeetCode] String to Integer (atoi) 字符串转为整数

    Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. ...

  2. 编写atoi库函数

    看到很多面试书和博客都提到编写atoi函数,在很多面试中面试官都会要求应聘者当场写出atoi函数的实现代码,但基本很少人能写的完全正确,倒不是这道题有多么高深的算法,有多么复杂的数据结构,只因为这道题 ...

  3. 行程编码(atoi函数)

    #include<iostream> #include<string> #include<vector> using namespace std; void jie ...

  4. No.008:String to Integer (atoi)

    问题: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input ca ...

  5. c/c++面试题(8)memcopy/memmove/atoi/itoa

    1.memcpy函数的原型: void* memcpy(void* dest,cosnt void* src,size_t n); 返回值:返回dest; 功能:从源内存地址src拷贝n个字节到des ...

  6. LeetCode 7 -- String to Integer (atoi)

    Implement atoi to convert a string to an integer. 转换很简单,唯一的难点在于需要开率各种输入情况,例如空字符串,含有空格,字母等等. 另外需在写的时候 ...

  7. [LeetCode] 8. String to Integer (atoi)

    Implement atoi to convert a string to an integer. public class Solution { public int myAtoi(String s ...

  8. atoi()函数

    原型:int  atoi (const  char  *nptr) 用法:#include  <stdlib.h> 功能:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前 ...

  9. [Leetcode]String to Integer (atoi) 简易实现方法

    刚看到题就想用数组做,发现大多数解也是用数组做的,突然看到一个清新脱俗的解法: int atoi(const char *str) { ; int n; string s(str); istrings ...

  10. 【leetcode】atoi (hard) ★

    虽然题目中说是easy, 但是我提交了10遍才过,就算hard吧. 主要是很多情况我都没有考虑到.并且有的时候我的规则和答案中的规则不同. 答案的规则: 1.前导空格全部跳过  “      123” ...

随机推荐

  1. 【设计和开发一套简单自己主动化UI框架】

    !有兴趣的朋友请直接移步Github,本帖子已经不做更新,框架的详细的实现已经做了优化和代码整理,本文仅仅介绍了详细的设计思路! 目标:编写一个简单通用UI框架用于管理页面和完毕导航跳转 终于的实现效 ...

  2. C# 让枚举返回字符串

    下面的手段是使用给枚举项打标签的方式,来返回字符串 分别定义一个属性类,一个枚举帮助类 /// <summary> /// 自定义属性 /// </summary> [Attr ...

  3. FastJson---高性能JSON开发包

    SVN:http://code.alibabatech.com/svn/fastjson/trunk/WIKI:http://code.alibabatech.com/wiki/display/Fas ...

  4. cocos2dx 2.x 粒子渲染时有黑色粒BUG

    在iPhone6 个别机型会出现 粒子效果黑色不正常现象. ignore = CCParticleSystemQuad:create("particles/flower_red.plist& ...

  5. 【python】泰语分词器安装

    1.安装icu http://blog.csdn.net/liyuwenjing/article/details/6105388 2.安装pyicu https://anaconda.org/kale ...

  6. lua:值得看的博客资源 ...

    凯奥斯 :https://blog.csdn.net/ecidevilin/article/category/6454847 https://blog.csdn.net/qinyuanpei/arti ...

  7. lua封装的位运算

    1.移位运算基础 --与 同为1,则为1 --或 有一个为1,则为1 --非 true为 false,其余为true --异或 相同为0,不同为1 --ZZMathBit = {} function ...

  8. 怎么安装ABBYY FineReader

    ABBYY FineReader是市场领先的文字识别(OCR)软件,可快速方便地将扫描纸质文档.PDF文件和数码相机的图像转换成可编辑.可搜索信息,ABBYY FineReader 12是目前最新版本 ...

  9. windows 环境内网超快同步 DFS

    记录下: 在WINDOWS环境下,内网同步使用DFS可以超快实现文件同步,效果非常OK 纯粹记录下!

  10. 使用monkey技术修改python requests模块

    例如请求前和请求后各来一条日志,这样就不需要在自己的每个代码都去加日志了. 其实也可以直接记录'urllib3.connectionpool'  logger name的日志. 修改了requests ...