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. Python——eventlet.hubs

    Hub构成了 Eventlet 的事件循环,它分发 I/O 事件.调度 greenthread.Hub的存在使得协程被提升为 greenthreads. Eventlet 有多种hub的实现,所以在使 ...

  2. Volley的Get、Post方式(JsonObjectRequest、StringRequest)以及Volley获取图片的3种方式

    activity_main.xml 里面什么也没有 AndroidManifest.xml(重点是android:name="com.example.volley.MyApplication ...

  3. Wrong codepoints for non-ASCII characters inserted in UTF-8 database using CLP

    Technote (troubleshooting) Problem(Abstract) During insert from the CLP there is no codepage convers ...

  4. chrome浏览器表单自动填充默认样式(背景变黄)-autofill

    之所以出现这样的样式, 是因为Chrome会自动为input增加如下样式. 这个样式的优先级也比较高. 无法通过important覆盖(这就比较恶心了). 解决方案(3种): 1. 关闭自动保存账号密 ...

  5. 【.NET】正则表达式笔记

    很早就听说正则表达式的强大,今天终于一睹它的真容,在这里记下学习时候的笔记,以便以后查看 1.正则表达式 用于描述字符串规则的的特殊的字符(正则表达式本身是字符串,用来描述字符串的相关规则,用于与其他 ...

  6. CocoaPods 第三方库管理器

    下载地址:https://github.com/kattrali/cocoapods-xcode-plugin 跟 VVDocumenter 规范注释生成器的安装方式一样: 下载开源工程在 Xcode ...

  7. UNIX环境编程学习笔记(24)——信号处理进阶学习之信号集和进程信号屏蔽字

    lienhua342014-11-03 1 信号传递过程 信号源为目标进程产生了一个信号,然后由内核来决定是否要将该信号传递给目标进程.从信号产生到传递给目标进程的流程图如图 1 所示, 图 1: 信 ...

  8. JSON.stringify报cyclic object value错误

    这是一个典型的循环引用的错误,一个对象里引用自己就会立刻得到这个错误: obj = { x:555, y: "hi" }; obj.myself = obj; try{ json ...

  9. 二维码解析:使用 JavaScript 库reqrcode.js解析二维码

    上次使用QRCode.js可以来生成二维码,但是我没有找到有文档说明可以对存在的二维码进行扫描解析其中的内容. 幸亏查找到了可行的解决方案,而且很好使哦!就是reqrcode.js 地址:https: ...

  10. Docker安装指南

    Ubuntu 14.04 16.04 (使用apt-get进行安装) # step 1: 安装必要的一些系统工具 sudo apt-get -y update sudo apt-get -y inst ...