典型c库函数的实现
StrToInt:字符串转int输出
enum Status
{
kValid = ,
kInvalid = ,
}; int StrToInt(const char* str)
{
g_nStatus = kInvalid;
long long num = ; if(str!=NULL && *str != '\0')
{
bool minus = false;
while(*str =="")
str++;
if(*str =='+')
{
str++;
}
else if(*str=='-')
{
str++;
minus = true;
} if(*str !='\0')
{
num = StrToIntCore(str, minus);
}
}
return (int)num;
} int StrToIntCore(const char *digit, bool minus)
{
long long num = ;
while(*digit !='')
{
if(*digit >='' && *digit<='')
{
int flag = minus ? -:;
num =num* + flag*(*digit -''); //判断整数是否发生上溢/下溢
if((!minus && num > 0x7FFFFFFF) //最大正数:2^32-1
|| (minus && num <(signed int)0x80000000))//最小负数:2^32
{
num = ;
break;
}
digit++;
}
else
{
num = ;
break;
}
}
if(*digit=='\0')
{
g_nStatus = kValid;
} return num;
}
char* strcpy(char* srcDest, const char* srcSrc)
char *strcpy(char* strDest, const char *srcSrc)
{
assert((strDest!=NULL)&&(strSrc!=NULL)); //2分
char *address = strDest; //2分
while(*srcSrc!='\0') //2分
{
*strDest = *srcSrc;
strDest++;
strSrc++;
}
return address; //2分
}
返回char* 的原因:实现链式表达式
1、就是方便一些,否则就要这样写:
char strDest[12];
strcpy( strDest, “hello world”);
int length = strlen(strDest);
什么链式就是一连串写下来的意思。。。
2、strcpy()的参数本来就是指针类型,字符串的首地址。
典型c库函数的实现的更多相关文章
- Code Review的一些典型内容
如下是Code Review中一些典型的内容: 一.常规项: 1.代码能够工作么?它有没有实现预期的功能,逻辑是否正确等. 2.所有的代码是否简单易懂? 3.代码符合你所遵循的编程规范么?这通常包括大 ...
- STM32 串口功能 库函数 详解和DMA 串口高级运用(转载)
数据传输时要从支持那些相关的标准?传输的速度?什么时候开始?什么时候结束?传输的内容?怎样防止通信出错?数据量大的时候怎么弄?硬件怎么连接出发,当然对于stm32还要熟悉库函数的功能 具起来rs232 ...
- linux系统调用和库函数调用的区别(转)
Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions).可以参考<Linux程序设计>(英文原版为<Beginning ...
- Linux 库函数与系统调用的关系与区别
上周总结了<C 标准库的基础 IO>,其实这些功能函数通过「系统调用」也能实现相应功能.这次文章并不是要详细介绍各系统调用接口的使用方法,而是要深入理解「库函数」与「系统」调用之间的关系和 ...
- GNU Readline库函数的应用示例
说明 GNU Readline是一个跨平台开源程序库,提供交互式的文本编辑功能.应用程序借助该库函数,允许用户编辑键入的命令行,并提供自动补全和命令历史等功能.Bash(Bourne Again Sh ...
- geatpy - 遗传和进化算法相关算子的库函数(python)
Geatpy The Genetic and Evolutionary Algorithm Toolbox for Python Introduction Website (including doc ...
- 通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制
通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制 前言说明 本篇为网易云课堂Linux内核分析课程的第四周作业,我将通过调用C语言的库函数与在C代码中 ...
- Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数
11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...
- 门面模式的典型应用 Socket 和 Http(post,get)、TCP/IP 协议的关系总结
门面模式的一个典型应用:Socket 套接字(Socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: 连接使用的 ...
随机推荐
- java中对象模型与数据库中的关系模型
实体类还需要配置到hibernate.cfg.xml中,以便Hibernate初始化实体类与数据库表的映射关系.如果只配置了映射关系,而没有配置到hibernate.cfg.xml中,Hibernat ...
- 【转】C#实现MD5加密
转自:C#实现MD5加密 常用的如下: 方法一 首先,先简单介绍一下MD5 MD5的全称是message-digest algorithm 5(信息-摘要算法,在90年代初由mit laborator ...
- php 计算多维数组中所有值的总和
php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和: 计算多维数组所有值的和就要自定义函数了: function get_sum($array) { $num ...
- hdu 4349 Xiao Ming's Hope lucas
题目链接 给一个n, 求C(n, 0), C(n, 1), ..........C(n, n)里面有多少个是奇数. 我们考虑lucas定理, C(n, m) %2= C(n%2, m%2)*C(n/2 ...
- linq to entity asp.net mvc 多字段排序
字段1 降序 字段2 降序 var str = db.xxx.OrderByDescending(p=>p.字段1).ThenByDescending(p=>p.字段2) ThenBy - ...
- java.lang.VerifyError: Inconsistent stackmap frames at branch target
-XX:-UseSplitVerifier解决. 附带网址:http://stackoverflow.com/questions/12774672/java-7-inconsistent-stackm ...
- SIGAR - System Information Gatherer And Reporter
https://support.hyperic.com/display/SIGAR/Home 收藏一篇: http://www.cnitblog.com/houcy/archive/2012/11/2 ...
- python defaultdict 类型
在Python里面有一个模块collections,解释是数据类型容器模块.这里面有一个collections.defaultdict()经常被用到.主要说说这个东西. 综述: 这里的defaultd ...
- Noip2009提高组总结
Noip2009的题目还是有一定难度的,主要是搜索和最短路都是我的弱项,不检查第一遍下来只做了150分,还是这句话,素质和读题的仔细程度决定了分数.仔细想想,我们化学老师说的话没错,或许题目你都会做, ...
- HDU 1584 蜘蛛牌
题解:纸牌只能移到比其大一的纸牌上,所以移动方向是定的,那么,就只有选择移动先后的问题了,对于决定要移的纸牌,比如1,如果2,3,4都是visited的状态,那么1一定是要移动到5的,因为2,3,4一 ...